《Android》『Activity Life Cycle』- Activity 的生命週期
《簡單介紹》
這篇來解釋一下甚麼是屬於 Android 的生命週期,在Android領域中,通常一般人所提到的生命週期,指的是一個 Activity 的生命週期,也就是它從一開始誕生到最後結束的過程中,所經歷的狀態變換,而甚麼是 Activity 呢?簡單的說,Activity 就是一個應用程式(Application)中,程序執行時的”行為”,一個Application可以由多個 Activity 的交互作用所構成,也因此,可用記憶體資源的控管與分配方式就會顯得非常重要,而所謂 Activity 的生命週期,其實就是 Android 系統用來管理資源分配的一種機制,當記憶體的資源不足時,系統會自動依照優先等級進行回收,因此,透過了解 Activity 的生命週期,我們可以更明確的利用已知的狀態改變機制,在特定的情況下去控管一些所需的變數,進而達到我們要的目的。
Activity 的生命週期
關於 Activity 的生命週期,相關的圖案在網路上搜尋關鍵字就會有許多不同人畫的流程圖,這是其中一張,Android 的程式通常是由很多個Activity互相合作而成,Android 系統為了能正確地管理不同 Activity 之間的交換機制,分別定義了 onCreate()、onStart()、onRestart()、onResume()、onPause()、onStop()、onDestory()…等不同的狀態,在一個 Activity 執行的過程當中,系統會根據目前使用者的操作行為,自動地去改變週期狀態,因此,只要能熟悉系統會將一個”行為”在何時切換至 Activity 生命週期的哪種狀態,我們就能於該狀態上,針對當前狀況為 Activity 進行所需的程式碼修改。
《系統回收資源的優先等級》
第一優先 : 空行程 (Empty Process)
空行程指的是獨立的 Activity,當一個 Activity 在當下沒有與任何其他 Activity 關聯時,即稱為空行程。
第二優先 : 背景行為 (Background Activity)
處於 onStop() 狀態下的 Activity 即稱為 Background Activity。
第三優先 : 伺服器行程 (Service Process)
Service Process 即是於程式背景執行,不帶有 UI 介面的一個類別。
第四優先 : 可視行為 (Visible Activity)
處於 onPause() 狀態下的 Activity 即稱為 Visible Activity。
第五優先 : 當下行為 (In process Activity)
當記憶體嚴重不足,最後會被回收的,就是當下正在執行的 Activity。
《常見的生命週期流程》
- 啟動 Activity
StartActivity ➞ onCreate() ➞ onStart() ➞ onResume() - 結束 Activity
onPause() ➞ onStop() ➞ onDestroy() ➞ End Activity - 呼叫內建的 Activity
onPause() ➞ onStop() - 由內建的 Activity 返回原本的 Activity
onRestart() ➞ onStart() ➞ onResume() - 呼叫自訂的 Activity (1 : 原Activity, 2 : 被呼叫的自訂 Activity)
onPause(1)
➞ onCreate(2) ➞ onStart(2) ➞ onResume(2)
➞ onPause(1) ➞ onStop(1) - 由自訂的 Activity 返回原本的 Activity (1 : 原Activity, 2 : 被呼叫的自訂 Activity)
onPause(2)
➞ onRestart(1) ➞ onStart(1) ➞ onResume(1)
➞ onStop(2) ➞ onDestory(2) ➞ End Activity 2 - 按下 Power 鍵 (鎖定螢幕/解除鎖定)
鎖定螢幕 – onPause() ➞ onStop()解除鎖定 – onRestart() ➞ onStart() ➞ onResume() - 按下 Home 鍵
onPause() ➞ onStop()
臉書留言
一般留言