生命週期
行程
為什麼要了解生命週期
Activity 的狀態
Android 的虛擬機(VM)是使用堆疊 (Stack based) 管理。主要有四種狀態:
Active (活動)
Paused (暫停)
Stopped (停止)
Dead (已回收或未啟動)
「Dead」狀態是 Activity 尚未被啟動、已經被手動終止,或已經被系統回收的狀態。
要手動終止 Activity,可以在程式中呼叫「finish」函式。我們在加入選單一章中已經提到過了。
如果是被系統回收,可能是因為記憶體不足了,所以系統根據記憶體不足時的回收規則,將處於「Stopped」狀態的 Activity 所佔用的記憶體回收。
記憶體不足時的行為
觀察 Activity 運作流程
講了這麼多虛的,我們可以寫一些程式來直觀查看 Activity 的運作流程嗎?
當然可以。在上一章記錄與偵錯 (Log)中,我們學到的「Log」工具,正好可以在查看 Activity 的運作流程時派上用場。
打開「src/com/demo/android/bmi/Bmi.java」,在程式中加入一些「Log」記錄點:
public class Bmi extends Activity {
private static final String TAG = "Bmi";
public void onCreate()
{
super.onCreate(...);
Log.v(TAG,"onCreate");
}
public void onStart()
{
super.onStart();
Log.v(TAG,"onStart");
}
public void onResume()
{
super.onResume();
Log.v(TAG,"onResume");
}
public void onPause()
{
super.onPause();
Log.v(TAG,"onPause");
}
public void onStop()
{
super.onStop();
Log.v(TAG,"onStop");
}
public void onRestart()
{
super.onRestart();
Log.v(TAG,"onReStart");
}
public void onDestroy()
{
super.onDestroy();
Log.v(TAG,"onDestroy");
}
}
講解
Activity 運作流程
由實際運行的記錄來看,我們可以歸納出所有 Android 應用程式都遵循的動作流程:
一般啟動
呼叫另一個 Activity
回原 Activity
退出結束
回收後再啟動
參考資料
全站熱搜
留言列表