Activity的生命週期--讀書筆記

Activity作爲四大組件之首,也是我們最常用的,使用最爲頻繁的組件.在正常情況下,除了Dialog,Toast以及Window之外,我們能見到的界面也就是Activity.

正常情況下的Activity的生命週期

①onCreate:在Activity被創建的過程中,一個先執行的方法,並且它執行且執行一次.在這個方法中,我們一般去做一些初始化的操作:比如setContentView加載佈局等等.

②onRestart:表示Activity正在重啓,Activity在從不可見的狀態變爲可見的狀態的時候,會執行這個方法.一般情況下這種情況是用戶導致的,比如說,我們在當前的Activity頁面點擊了home鍵,當前的Activity變消失不見了,當用戶再啓動此應用的時候,Activity重現,此時,就會調用onRestart方法.

③onStart:表示Activity正在啓動,此時Activity已經可見但是還沒有出現在前臺,無法與用戶交互(即不能點擊的狀態)

④onResume:此時的Activity正在前臺活躍的活動,我們可以看到,並且可以和用戶進行交互.

⑤onPause:表示Activity已經停止,一般在這個方法中進行數據的保存,一般執行完這個方法就會執行onStop方法,但是特殊情況下也會回到onResume

⑥onStop:表示Activity已經停止

⑦onDestroy:表示Activity被銷燬,通常在此方法中進行一些回收工作以及資源的釋放.

需要注意的是:在所有的Activity的生命週期中都不能進行耗時操作,因爲Activity是用於和用戶進行操作的界面,當這個界面被阻塞的時候,就會報ANR異常了.

這是Activity生命週期方法的執行順序

(1)針對一個特定的Activity,第一次啓動,回調如下:
onCreate->onStrat->onResume

(2當用戶打開新的Activity切換到桌面的時候,回調如下:
onPause->onStop

有一種特殊的情況,如果新的Activity採用了透明的主題,那麼它只會執行onPause

(3)當用戶再次回到原來的Activity的時候,回調如下:
onRestart->onStart->onResume

(4)當用戶按下back鍵會退的時候,回調如下:
onPause->onStop_>onDestroy

(5)從整個生命週期來看,onCreate與onDestroy是配對的,分別標示着Activity的創建與銷燬,並且只可能調用一次,onResume與onPause是配對執行的隨着用戶的操作,這兩對可能被多次執行

其實可以用一個人的一生來描繪Activity的生命週期:

onCreate:相當於一個人的出生
onStart:相當事業的開始
onResume:相當於事業的最高峯,展現在舞臺的前端,所有人可以看到
onPause:相當於的事業日漸蕭條,退居到幕後
onStop:相當於遭受到巨大的打擊
onRestart:重振旗鼓,捲土重來
onDestroy:死亡
所以,當Activity執行的時候,只有onCrteateonDestroy執行,並且只執行一次.這樣理解起來是不是好了很多呢…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章