2016-01-13 76 views
0

如果我的第一個activity已關閉,您能告訴我如何運行我的第二個activity嗎?可能需要一段時間才能打開第二個活動。是否應該使用Service?請給出例如,非常感謝。第一次關閉時運行第二個活動

+0

在什麼情況下你想運行第二個活動? – Knossos

+0

我希望第一次活動關閉一段時間,然後第二次活動可以打開 – Konar

回答

1

答案將取決於您希望開始下一個活動的條件。以下僅是一個示例,無論在onDestroy中做了什麼,都可以在其他任何地方複製以開始下一個活動。

重寫第一個活動的onDestroy方法,然後觸發一個意圖來啓動第二個活動。 在您的第一項活動,

public class A extends Activity{ 
    . 
    . 
    . 
    @Override 
    public void onDestroy(){ 
     Intent in = new Intent(this, SecondActivity.class); 
     startActivity(in); 
    . 
    . 
    . 
    } 
} 

確保兩個活動都在AndroidManifest.xml文件檔案化

編輯:要開始一段時間後,你可以使用這樣的處理程序。 (注:這個人是不是測試,我希望它能正常工作)

public void onDestroy(){ 
    new Handler.postDelayed(new Runnable(){ 
        public void run() { 
         Intent in = new Intent(this, SecondActivity.class); 
         startActivity(in); 
        }     
       }, 7000); 
} 

7000在這裏是後要開始下一個活動的毫秒。即下一個活動將在7s後開始。

一切順利:)

+0

謝謝您的回答!但我忘了提到一件事:第一次關閉後,第二次活動可以打開一段時間。 – Konar

+0

檢查編輯@Konar –

0

如果我的第一個活動是封閉

對我來說,這聽起來像你的意思是「封閉作爲用戶操作的結果」。從onDestroy()開始新的Activity不好主意,因爲如果需要的話系統可能會破壞你的Activity。如果設備旋轉,它也可能被破壞。更好的方法是壓倒一切的返回按鈕:

@Override 
    public void onBackPressed() { 
    //delay 2nd Activity launch 
    super.onBackPressed(); 
    } 
0

如果您嘗試從您的第一項活動中的延遲推出第二個活動,你就有可能它不開放所有,如果應用程序從內存中清除。您最好的選擇是使用AlarmManager安排在一段時間後開啓新的活動。這將工作放在Android OS上,而不是放在您的應用中。

This post包含一些如何處理這個問題的代碼示例。

+0

但是我怎麼理解AlarmManager只能打開廣播接收器,不是嗎?(​​由於等待的意圖)。 – Konar

+0

@Konar我對這些限制不是肯定的,但是如果是這樣的話,你可以簡單地從廣播接收器(我認爲需要自定義啓動標誌)啓動活動。像[這](http://stackoverflow.com/a/16666632/763080)應該做的伎倆。 – Phil

相關問題