2013-11-21 53 views

回答

0

問題的答案取決於你的活動。這裏有幾個不同的場景會導致不同的生命週期方法被調用。下面的每個場景都假定有一個活動AB,其中後者由第一個調用;即在按下按鈕之後。

方案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()

在生命週期的文檔,你會發現下面的流程圖,你會發現使用的:

android activity life cycle flow diagram

0

onResume()將按照Activity Lifecycle

在該鏈接被稱爲在圖像它說

用戶返回到活動

onPause()將被稱爲第一,然後在返回時,onResume()將在正常情況下被調用。

要檢查這一點,你可以@OverrideonResume()看到它被調用。