活動的生命週期
Android使用任務(Task)來管理活動,一個任務就是存放在返回棧中的活動的集合。棧是後進先出的結構,系統總是顯示位於棧頂的活動,當一個活動調用finish時就會出棧。
活動的狀態
1、運行狀態:位於棧頂的活動,系統最不願意收回這種活動的資源
2、暫停狀態:不再棧頂的活動,但是因爲棧頂活動的大小緣故而仍然可見的活動,因爲仍然可見所以系統也一般不會收回這部分的資源。
3、停滯狀態:不處在棧頂且不可見的活動,系統有可能收回資源。
4、銷燬狀態:出棧後的活動,系統會優先收回這部分的資源。
活動的函數
1、onCreate()
在活動第一次被創建時調用。
2、onStart()
活動由不可見變爲可見時調用。
3、onResume()
活動準備好與用戶進行交互時調用,此時活動需要處於返回棧的棧頂,並處於運行狀態。
4、onPause()
要啓動或恢復其他活動時使用,使本活動暫停,回收部分資源。
5、onStop()
在活動完全不可見時調用。它和onPause的區別在於如果新活動是對話框式的活動,則onPause會執行,而onStop不會執行。
6、onDestroy()
活動被銷燬前調用,調用後活動被銷燬。
7、onRestart()
停止的活動重新啓動活動。
活動的生存期
1、完整生存期
onCreate到onDestroy間是完整生存期。
2、可見生存期
onStart到onStop間是可見生存期。
3、前臺生存期
活動在onResume到onPause間爲前臺生存期。這個期間活動是運行狀態,且可交互。
臨時數據的保存
當一個活動被停止時,可能活動會被後臺殺死,當重新進入這個活動時不是調用onRestart而是調用了onStart重新建立了活動,可以使用onSaveInstanceState()對臨時數據進行保存。這個方法第一個參數是鍵值,第二個參數是實際傳遞的數據。