2012-05-07 72 views
4

首先,我讀了great explanation of how the activities start, suspend, resume and stop。這很好,但我有另一個問題。再次在活動生命週期:onStart被調用時,它不應該

Android reference中的活動生命週期圖告訴我,如果我調用另一個活動,將爲調用活動調用onPause(),稍後當另一活動結束時 - 調用者將通過onResume()繼續。

因此,如果第一個活動是主,另一個是其他,週期應該是這樣的(僞):

Main.onCreate() 
Main.onStart() 
Main.onResume() 
// Main is running... Then, the user clicks a button and Other comes in front. 
Main.onPause() 
Other.onCreate() 
// Other's lifecycle goes here... Finally, the user returns back. 
Main.onResume() 
// Main is running again. 

這是圖什麼講述。但是我的Main首先獲取onStart(),然後是onResume()。

這是爲什麼?我誤解了什麼嗎?

回答

5

發生這種情況是因爲您的主要活動完全從視圖中消失,觸發了onStop,當您恢復時觸發OnStart。如果你只是部分隱藏你的主視圖,你只會看到恢復。

如果看一下onPause和onStop之間的關係圖,就會看到「該活動不再可見」......這就是您遇到的情況。

對於快速參考,活動週期圖形:

enter image description here

+0

謝謝你的提醒,以檢查圖形。我總是忘記檢查這個。解決了我的問題。 – Brandon

1

您的onStart()正在接受主要應用程序的一個原因是您的主要活動正在停止。這是它的onStop()被調用。在這種情況下,首先調用onStart(),然後onResume()