今天要繼續講活動的生命週期,
程式共有七個生命週期狀態,其中又可以歸納為三類
Android官方網站提供Activity的運作流程如圖:
由實際運行的記錄來看,我們可以歸納出所有Android應用程式都遵循的動作流程。
一般啟動
onCreate → onStart → onResume
啟動一個Activity的基本流程是:分配資源給這個Activity(Create狀態),然後將Activity內容顯示在螢幕上(Start狀態)。在一切就緒後,取得螢幕的控制權(Resume狀態),使用者可以開始使用這個程式
呼叫另一個Activity
onPause (1) → onCreate (2) → onStart (2) → onResume (2) → onStop (1)
這是個先凍結原本的Activity,再交出螢幕控制權(Pause狀態)的過程。直到Activity 2完成一般啟動流程後,Activity 1 才會被停止
返回原Activity
onPause (2) → onRestart (1) → onStart (1) → onResume (1) → onStop (2) → onDestroy (2)
在新的Activity中,點選硬體的Back 按鈕,可以讓我們回到原本的Acitvity
退出結束
onPause → onStop → onDestroy
如果程式有直接呼叫finish函式來關閉Activity的話,系統假設我們很確定我們在做什麼,因此會直接先交出螢幕控制權(暫停Pause),接著停止這個Activity(Stop),然後銷毀(Destroy)這個Activity
回收後再啟動
onCreate → onStart → onResume
被回收掉的Activity一旦又重新被呼叫時,會像一般啟動一樣再次呼叫Activity的onCreate函式