我無法找到第一次活動時我在哪裏的信息,當我在第二次點擊「返回」時。爲什麼?Android/Java - 活動生命週期 - 在哪裏回到上一個活動?
第一個肯定不會被重新制作,所以其中「on ...」(如onResume(),onStop()等)是我嗎?
我無法找到第一次活動時我在哪裏的信息,當我在第二次點擊「返回」時。爲什麼?Android/Java - 活動生命週期 - 在哪裏回到上一個活動?
第一個肯定不會被重新制作,所以其中「on ...」(如onResume(),onStop()等)是我嗎?
問題的答案取決於你的活動。這裏有幾個不同的場景會導致不同的生命週期方法被調用。下面的每個場景都假定有一個活動A
和B
,其中後者由第一個調用;即在按下按鈕之後。
方案1:B
是半透明的和/或不完整尺寸(即對話風格)
活動A
會失去焦點,但仍是可見的,因爲B
是非全尺寸的和/或透明的,坐在上面A
。在這種情況下,A
將爲暫停。暫停的活動是完全活動的(它保留所有狀態和成員信息並保持連接到窗口管理器),但可以在極低內存情況下被系統殺死。
場景2:B
是全尺寸
活性A
完全由B
遮蔽。這將是停止。它仍然保留所有狀態和成員信息,但是,用戶不再可見,因此其窗口處於隱藏狀態,並且在別處需要內存時通常會被系統殺死。在life cycle section of the Activity
class.
上述所有的證據充分的所以我們現在知道,活性A
將是要麼暫停(方案一)或停止(方案2),否則它會一直被系統殺死以釋放內存。讓我們首先假設後者不會發生,那麼下面的生命週期方法是相關的:
方案1:onPause()
時B
節目,其次是onResume()
時A
回來成爲關注的焦點。 方案2::onPause()
和onStop()
時B
所示,隨後onStart()
和onResume()
當A
回來成爲關注焦點。
如果一個活動暫停或停止,系統可以通過要求完成活動或簡單地終止活動來從內存中放棄該活動。當它再次顯示給用戶時,它必須完全重新啓動並恢復到以前的狀態。這意味着活動將以onCreate()
再次開始,然後是onStart()
和onResume()
。
在生命週期的文檔,你會發現下面的流程圖,你會發現使用的:
onResume()
將按照Activity Lifecycle
在該鏈接被稱爲在圖像它說
用戶返回到活動
onPause()
將被稱爲第一,然後在返回時,onResume()
將在正常情況下被調用。
要檢查這一點,你可以@Override
onResume()
看到它被調用。
當您按下那時你回來的活性1
onResume()
欲瞭解更多信息檢查:http://developer.android.com/training/basics/activity-lifecycle/starting.html