Activity的生命周期
為了在 Activity 生命周期的各個(gè)階段之間導(dǎo)航轉(zhuǎn)換,Activity 類(lèi)提供六個(gè)核心回調(diào):onCreate()、onStart()、onResume()、onPause()、onStop() 和 onDestroy()。當(dāng) Activity 進(jìn)入新?tīng)顟B(tài)時(shí),系統(tǒng)會(huì)調(diào)用其中每個(gè)回調(diào)。

activity_lifecycle.png
單個(gè)Activity的生命周期
用戶可見(jiàn),持有焦點(diǎn)(可以做輸入,點(diǎn)擊等操作)
onCreate()
- 您必須實(shí)現(xiàn)此回調(diào),它會(huì)在系統(tǒng)首次創(chuàng)建 Activity 時(shí)觸發(fā)。Activity 會(huì)在創(chuàng)建后進(jìn)入“已創(chuàng)建”狀態(tài)。
常見(jiàn)用法
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
onStart()
onResume()
- onStart() 和 onResume() 幾乎總是同時(shí)執(zhí)行
用戶不可見(jiàn)狀態(tài),失去焦點(diǎn)(不可輸入,點(diǎn)擊)
onPause()
- 當(dāng)前頁(yè)面退出在后臺(tái)時(shí)觸發(fā)(盡管在用戶處于多窗口模式時(shí) Activity 仍然可見(jiàn))
onStop()
- 當(dāng) Activity 對(duì)用戶不再可見(jiàn)時(shí),系統(tǒng)會(huì)調(diào)用 onStop()。出現(xiàn)這種情況的原因可能是 Activity 被銷(xiāo)毀,新的 Activity 啟動(dòng),或者現(xiàn)有的 Activity 正在進(jìn)入“已恢復(fù)”狀態(tài)并覆蓋了已停止的 Activity。在所有這些情況下,停止的 Activity 都將完全不再可見(jiàn)
- 系統(tǒng)調(diào)用的下一個(gè)回調(diào)將是 onRestart()(如果 Activity 重新與用戶互動(dòng))或者 onDestroy()(如果 Activity 徹底終止)
onRestart()
- 用戶從其他Activity 返回該Activity 時(shí)會(huì)觸發(fā)
- 當(dāng)處于“已停止”狀態(tài)的 Activity 即將重啟時(shí),系統(tǒng)就會(huì)調(diào)用此回調(diào)。會(huì)從 Activity 停止時(shí)的狀態(tài)恢復(fù) Activity
- 此回調(diào)后面總是跟著 onStart()
onDestroy()
- 系統(tǒng)會(huì)在銷(xiāo)毀 Activity 之前調(diào)用此回調(diào)。
2個(gè)Activity的生命周期

image.png