android activity生命週期

爲了更好的理解activity生命週期,大家可以下載示例程序,下載

android 四大組件包括Activity、Service、Broadcast Receiver、Content Provider。 其中Activity是與用戶直接交互的組件,通過它可以實現文字輸入,單擊,雙擊事件,文字回顯,界面控制,可以說它實際上是android的一張臉,公關部,餐館服務員,是最前線的工作者。

android應用程序的生命週期也主要通過activity的生命週期得以體現,理解activity生命週期也是android開發所必不可少的。

下圖爲activity的生命週期,可以看出其主要包括oncreate, onstart, onResume, onPause, onStop, onDestory, onRestart, Activity running, APP process幾個狀態。


onCreate:  當activity 第一次被創建時回調該函數,在這個函數內你應該完成所有資源加載以及程序的正常初始化工作,包括創建視圖,初始化相關數據。

onStart: 當activity視圖對用戶可見後會調用這個函數。

onResume:通過調用該函數,這個activity可以和用戶進行交互,當可以和用戶進行交互時,這個activity將會放到activity stack的棧頂。

onPause:當另外一個activity變爲activity stack最頂端時,這個函數將會被調用,在這個函數中我們可以添加代碼保存我們的數據,關閉當前activity動畫以節省CPU資源,需要特別說明,這個過程的不應該過於複雜,否則將會加大另一個activity界面對用戶可見的時間,大大降低用戶體驗。通俗來講當另外一個activity要變爲最界面頂層和用戶直接交互是,這個函數被調用,如果當前activity會被新的activity完全遮擋,對用戶完全不可見時,會繼續調用onstop函數,大家可以點擊示例中的changeUIByActivity按鈕,通過查看log加以驗證,因爲新的activity被設置成了透明背景,所以對用戶仍然可見,所以不會繼續調用stop函數

onStop:前面已經支持,如果當前activity將會被新的activity完全遮擋,系統將會調用stop, 當該activity重新對用戶可見時,將會調用Restart, 當該activity退出後,回調用onDestory函數

onDestory:當該activity被銷燬時這個函數會被調用,銷燬原因包括用戶調用finish()函數或者系統由於資源緊張而主動釋放該activity以節省空間,可以通過isFinishing方法判斷這兩種情景

onRestart:當該activity不不可見,重新變爲可見時,該函數將會被調用

Activity Running: 這是 APP當前被激活的actitiy和用戶進行交互的一個狀態,onClick等監聽函數在這個系統狀態下將會生效。

APP process killed: 當系統內存空間不足時,有更高優先級的app需要空間時,系統將會進入這個狀態,在這個狀態下該 activity所佔用的資源將會被回收,直到用戶重新激活該activity,將會重新執行onCreate創建資源。




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