活動的生命週期(Activity Lifecycle)

1.活動是通過活動棧進行管理的,當一個新的活動開始時,它被放在棧的最頂端,在棧中它的前一個活動會放在當前新活動的下面。

2.一個活動有最重要的四種狀態:
當它在屏幕的最前端的時候(在棧的頂端),此時它是處於運行狀態。
當一個活動依舊是可見的 ,但是並不在屏幕的最前端(不在棧頂),此時它是處在暫停狀態,暫停狀態的活動仍舊是存活的,但是當內存極低的極端情況下,是可以被回收的。
當一個活動被另一個活動完全隱藏的時候,它就處於停止狀態,此時對用戶它是不可見的,在需要內存的時候,這種活動經常會被回收。
當一個活動被暫停或停止,系統可是通過主動結束活動或者殺死它的進程來在釋放活動的內存

3.活動的三種循環的生存期:
entire lifetime (完整的生存期):從onCreate()到onDestroy()方法之間,活動會在onCreate()完成初始化操作,在onDestroy()中釋放佔用的資源。例如,如果一個活動有一個線程完成從網上下載數據,它應該在onCreate()中創建線程,在onDestroy()終止此線程。
visible lifetime(可見的生存期):從onStart()到onStop()方法之間。在這段時間,活動對於用戶是可見的,但是並非是在最前端可以與用戶進行交互的。在這兩個方法中管理在活動中顯示的資源。當活動對用戶可見和隱藏時,這兩個方法會被多次調用。
foreground lifetime(前端的生存期):從 onResume()到onPause方法之間,在這個期間,此活動在所有活動之前並與用戶進行交互。
這裏寫圖片描述
活動的生存期:
onCreate():活動第一次創建時調用此方法,在這個活動中完成初始化操作例如:加載佈局,對lists綁定數據。
onRestart():再活動被停止之後可被調用,在活動重新啓動之前。
onStart():當活動對用戶從不可見變爲可見的時候調用。
onResume():當活動準備與用戶進行交互時調用,此時活動位於棧頂。
onPause():這個方法在系統準備去啓動或者恢復另一個活動時調用。通常在這個方法中將一些消耗CPU的資源釋放掉,以及保存一些關鍵的數據,但是此方法的執行速度要快,在這個方法結束前,下一個活動無法走上最前端。
onStop()::當活動對用戶不可見的時候調用,因爲此時其他的活動已經在前端且覆蓋在此活動之上。與onPause的主要區別在於,當啓動的新活動是對話框的形式時,onPause執行而onStop不執行。
onDestroy():這個方法在活動銷燬之前調用,這個在活動結束(調用finish()方法)或者系統暫時結束活動實例以節省內存。

這裏寫圖片描述

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