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