生命周期注釋
onCreate()
創(chuàng)建Activity調(diào)用话肖,用于Activity的初始化,在Activity生命周期中只執(zhí)行一次兜挨,適用于實(shí)例化對(duì)象
onStart()
Activity創(chuàng)建或者從后臺(tái)重新回到前臺(tái)時(shí)被調(diào)用
在屏幕上對(duì)用戶可見
onRestart()
Activity從后臺(tái)重新回到前臺(tái)時(shí)被調(diào)用
onResume()
Activity創(chuàng)建或者從被覆蓋隶症、后臺(tái)重新回到前臺(tái)時(shí)被調(diào)用
Activity開始和用戶交互的時(shí)候調(diào)用,這時(shí)該Activity是在Activity棧的頂部 獲焦的時(shí)候
onWindowFocusChanged(boolean hasFocus)
Activity窗口獲得或失去焦點(diǎn)時(shí)被調(diào)用,在onResume之后或onPause之后
onPause()
在系統(tǒng)準(zhǔn)備去啟動(dòng)或者恢復(fù)另一個(gè)Activity的時(shí)候調(diào)用。
我們通常會(huì)在這個(gè)方法中將一些消耗CPU的資源釋放掉,以及保存一些關(guān)鍵數(shù)據(jù)。這個(gè)方法的執(zhí)行一定要快 不然影響切換頁面時(shí)間
onStop()
退出當(dāng)前Activity或者跳轉(zhuǎn)到新Activity時(shí)被調(diào)用
Activity被停止或者Activity變成不可見時(shí)調(diào)用
onDestroy()
退出當(dāng)前Activity時(shí)被調(diào)用,調(diào)用之后Activity就結(jié)束了
Activity被從內(nèi)存中移除骏掀,一般發(fā)生在執(zhí)行finish方法時(shí)或者Android回收內(nèi)存的時(shí)候
onSaveInstanceState(Bundle outState)
屏幕方向改變時(shí),Activity被銷毀再重建;當(dāng)前Activity處于后臺(tái),系統(tǒng)資源緊張將其殺死.
當(dāng)跳轉(zhuǎn)到其他Activity或者按Home鍵回到主屏?xí)r該方法也會(huì)被調(diào)用,系統(tǒng)是為了保存當(dāng)前View組件的狀態(tài).
onRestoreInstanceState(Bundle savedInstanceState)
Activity被系統(tǒng)殺死后再重建時(shí)被調(diào)用.
例如:屏幕方向改變時(shí),Activity被銷毀再重建;當(dāng)前Activity處于后臺(tái),系統(tǒng)資源緊張將其殺死,用戶又啟動(dòng)該Activity.
這兩種情況下onRestoreInstanceState都會(huì)被調(diào)用,在onStart()之后.
用例
啟動(dòng)A
-依次執(zhí)行A.onCreate() > A.onStart() > A.onResume()
從A跳轉(zhuǎn)到B
-依次執(zhí)行A.onPause() > B.onCreate() > B.onStart() > B.onResume() > A.onStop()
從B返回A
-依次執(zhí)行B.onPause() > A.onRestart() > A.onStart() > A.onResume() > B.onStop() > B.onDestroy()
退出A
-依次執(zhí)行A.onPause() > A.onStop() > A.onDestroy()