2013-04-17 7 views
6

當我打開一個活動時,我知道我可以初始化onCreate函數中的東西。onCreate與onResume/onRestart bevhaviour關於成員變量

但OnResume和onRestart函數的行爲是什麼?這些功能何時被調用?

具體來說:我在onCreate函數中初始化一個本地成員變量,以引用全局對象。現在,當用戶被打斷時,例如通過呼叫,該活動可以被關閉。後來,當用戶回到我的觀點時,已經啓動了變量的變量的狀態是什麼? 我是否必須重新初始化onResume/onRestart函數中的所有內容?那麼與onCreate相反的功能區別是什麼?

回答

6
  • onCreate:活動首次啓動。這裏是你可以初始化你的東西的地方。
  • onResume:用戶在另一個活動進入前景後返回活動。 ()
  • onRestart:用戶導航到活動後不再可見(onStop)。

您可以在Activity documentation上看到完整的生命週期。當你調用onDestroy時,你的活動內容只會丟失,當你完成它時,或者當它被系統破壞時(也就是說,當優先級較高的應用程序需要內存時)

+0

因此onDestroy意味着應用程序無論如何都被終止,onCreate將在下次應用程序重新啓動時調用,對嗎? – Devolus

+1

不一定,'onDestroy'意味着'Activity'被銷燬,就像當你用後退按鈕回到上一個活動時一樣,但應用程序仍在運行。但是,是的,一旦應用程序被殺死(或「活動」被破壞),下次打開它時,將再次調用「onCreate」。 – ssantos

+1

請注意,OnResume也會在OnCreate之後立即調用,根據此處的示意圖https://developer.android.com/guide/components/activities/activity-lifecycle.html#alc –

1

假設從當前活動開始對話,主窗口(活動)將進入onPause狀態。一旦你強制活動在後臺(假設你按回家按鈕)活動將進入onPause狀態。