LifeCycle

Activity LifeCycle

onCreate

  • Activity 被建立或手機翻轉。
  • 設定畫面。
  • 對屬性作初始化。

onRestart

  • 從 onStop 狀態回到 onStart 狀態。
  • 重新開啟 Activity 時觸發。

onStart

  • Activity 從不可見變為可見。
  • Activity 從後台 ( Background ) 進入到前台 ( Foreground ) 。
  • 不可見情況: 完全被另一個Activity蓋住。
  • 不可見情況: 螢幕顯示進入休眠。
  • 不可見情況: 退出 Activty。

onResumed

  • Activity 從部分可見變為完全可見。
  • 適合執行動畫的階段。
  • 因為葉面進入啟動狀態,應該重新取回硬體資源。

onPaused

  • Activity 從完全見變成部分可見。
  • 部分可見情況: 被一個透明的 Actvitiy 蓋住。
  • 開啟 Dialog 雖會讓 Activity 畫面加暗並顯示視窗,但不會導致Activity進入此狀態。
  • 暫停執行這個 Activity 程式碼。
  • 因為頁面進入暫停狀態,應該釋放硬體資源。

onStopped

  • Activity 從可見變成不可見。
  • Activity 從前台 ( Foreground ) 進入到後台 ( Background ) 。
  • 不會和使用者有交流。

onDestory

  • Activity 執行 finish() 方法後關閉。
  • 手機螢幕翻轉,介面重繪。

流程

entire lifetime

  • 完整生命時間
  • 從 onCreate -> onStart -> onResumed -> onPaused -> onStopped -> onDestory

visible lifetime

  • 可見生命時間
  • 從 onStart -> onResumed -> onPaused -> onStopped
  • 可能會執行多次。
  • 適合維護與介面顯示有關的 BroadcastReceiver。

foreground lifetime

  • 前景生命時間
  • 從 onResumed -> onPaused
  • 會在各種情況繁執的執行,裝置的睡眠、其他 Activity 的結果回傳,這裡的程式應盡可能減少。