Activity生命週期(1)—事件回調函數

Activity生命週期

Activity從啓動到銷燬的過程。函數

Activity的4種狀態

  • 活動狀態
  • 暫停狀態
  • 中止狀態
  • 非活動狀態 

Activity棧

棧頂的Activity處於活動狀態,除棧頂之外的其餘Activity處於暫停狀態或中止狀態,而被終止的Activity或已經出棧的Activity則不在棧內。動畫

        隨着用戶在界面進行的操做,以及Android系統對資源的動態管理,Activity不斷變化其在Activity棧中的位置,狀態也不斷在4種狀態間轉變。隨着Activity自身狀態的變化,Android系統會調用不一樣的事件回調函數,開發人員在事件回調函數中添加代碼,就能夠在Activity狀態變化時完成適當的工做。spa

 Activity事件回調函數

1.Activity生命週期的事件回調函數 生命週期

函數 是否可終止 說明
onCreate() >Android啓動後第一個被調用的函數
>經常使用來進行Activity的初始化(如建立view、綁定數據、恢復信息等)
onStart() >Activity顯示在屏幕上時,該函數被調用
onRestart() >Activity從中止狀態進入活動狀態前,調用該函數
onResume() >當Activity能夠接受用戶輸入時,該函數被調用
>此時的Activity處於Activity棧頂
onPause() >Activity進入暫停狀態時,該函數被調用
>主要用來保持持久數據、關閉動畫、釋放CPU資源等
>該函數必須簡短,由於另外一個Activity必須等待該函數執行完畢後才能顯示在界面上
onStop() >當Activity不對用戶可見後,該函數被調用,Activity進入中止狀態
onDestroy() >Activity被終止(進入非活動狀態)前,該函數被調用
>程序主動調用finish()函數或程序被Android系統終結

 2.Activity狀態保存/恢復的事件回調函數事件

函數 說明
onSaveInstanceState() 暫停或中止Activity前調用該函數,用以保存Activity的臨時信息
onRestoreInstanceState() 恢復onSaveInstanceState()保存的Activity狀態信息

        onSaveInstanceState() 和 onRestoreInstanceState() 函數不屬於生命週期的事件回調函數,onSaveInstanceState() 在Activity 被暫時中止時(或被其餘程序中斷或者鎖屏)被調用,而Activity被徹底關閉時(調用 finish() 函數)則不會被調用。當暫停的Activity被恢復時,系統調用 onRestoreInstanceState() 函數。ci

        onSaveInstanceState() 函數會將界面臨時信息保存在Bundle中,onCreate() 函數和onRestoreInstanceState() 函數均可以恢復這些保存的信息。通常簡化的作法是在 onCreate() 函數中恢復保存數據,但有些特殊狀況仍是須要使用 onRestoreInstanceState() 函數恢復保存信息。如必須在界面徹底初始化完畢後才能進行的操做,或有子類來肯定是否採用默認設置等。(存疑)資源

相關文章
相關標籤/搜索