生命周期

2018-07-04 10:06 更新

七個方法

  • onCreate 在這里創(chuàng)建界面, 做一些數(shù)據(jù)的初始化工作
  • onStart 可見不可交互
  • onResume 可見可交互
  • onPause 可見但不可交互的, 系統(tǒng)會停止動畫等消耗CPU的任務. 應該在這里保存你的一些數(shù)據(jù),因為這個時候你的程序的優(yōu)先級降低, 有可能被系統(tǒng)收回. 在這里保存的數(shù)據(jù), 應該在 onResume() 里讀出來. 注意: 這個方法里做的事情時間要短, 因為下一個 activity 不會等到這個方法完成才啟動變得不可見.
  • onstop 變得不可見,被下一個 activity 覆蓋了
  • onRestart 重新可見
  • onDestroy 摧毀 activity

生命周期圖

Activity 生命周期

常見應用場景

  • 啟動: onCreate()—>onStart()—>onResume(), Activity進入運行狀態(tài).
  • 退居后臺: 當前 Activity 轉到新的 Activity 界面或按Home鍵回到主屏: onPause()—>onStop(), 進入停滯狀態(tài).
  • 返回前臺: onRestart()—>onStart()—>onResume(), 再次回到運行狀態(tài).
  • Activity 退居后臺, 且系統(tǒng)內存不足, 系統(tǒng)會殺死這個后臺狀態(tài)的 Activity (此時這個Activity引用仍然處在任務棧中,只是這個時候引用指向的對象已經為null), 若再次回到這個Activity, 則會走onCreate()–>onStart()—>onResume()(將重新走一次Activity的初始化生命周期)
  • 鎖定屏與解鎖屏幕, 只會調用 onPause(), 而不會調用 onStop()方法, 開屏后則調用onResume()
  • 當 Activity 被另一個透明或者 Dialog 樣式的 Activity 覆蓋時就會 onPause. 這時它仍然可見. 只是失去焦點, 不可與用戶交互.

可能的問題

  • 畫生命周期圖
  • onStart() 與 onResume() 有什么區(qū)別?
onStart() 方法在 onCreate() 方法之后被調用或者在 Activity 從 Stop 狀態(tài)轉換為 Active 狀態(tài)時被調用, 一般執(zhí)行了 onStart() 后就執(zhí)行 onResume()
onResume() 在 Activity 從 Pause 狀態(tài)轉換到 Active 狀態(tài)時被調用. 使 Activity 獲得用戶焦點, 可以再與用戶交互.

來源:


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號