七個方法
onCreate
在第一次創建時呼叫,一般在這裡建立界面,做一些數據的初始化工作onStart
可見但不可作用時onResume
可見且用戶可與其作用時onPause
可見但不可作用,系統會停止動畫等消耗CPU的任務.
應該在這裡保存你的一些數據,因為這個時候你的程序的優先級降低,有可能被系統收回.
在這裡保存的數據,應該在onResume()
裡讀出來.注意:這個方法裡做的事情時間要短,因為下一個activity不會等到這個方法完成才啟動變得不可見。onStop
變得不可見,被下一個Activity 覆蓋onRestart
重新可見onDestroy
摧毀Activity
生命週期圖
常見情況
啟動:
onCreate() —> onStart() —> onResume()
,Activity進入運行狀態退至背景、當前Activity轉到新的Activity界面或按Home鍵回到主畫面:
onPause() —> onStop()
,進入停滯狀態返回前台:
onRestart() —> onStart() —> onResume()
,再次回到運行狀態Activity退至背景,且系統記憶體不足,系統會殺死這個處於背景狀態的Activity(此時這個Activity引用仍然處在任務清單中,只是這個時候指向的對像已經為null),若再次回到這個Activity,則重新走一次Activity的初始化生命週期
onCreate() –> onStart() —> onResume()
鎖定螢幕與解鎖,只會呼叫
onPause()
,而不會呼叫onStop()
方法,解鎖後後則呼叫onResume()
兩個Activity 之間跳轉時會執行的方法
一般情況下比如說有兩個Activity,分別叫A、B,當在A裡面啟動B的時候,
A會呼叫onPause()
方法,然後B呼叫onCreate() -> onStart() -> onResume()
這個時候B覆蓋了Window,此時 A會呼叫onStop()