生命周期

2018-07-04 10:06 更新

七個(gè)方法

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

生命周期圖

Activity 生命周期

常見應(yīng)用場景

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

可能的問題

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

來源:


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號