1.1.1 Activity生命周期

生命周期注釋

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


生命周期圖

github地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容