第一章 Activity的生命周期和啟動(dòng)模式—學(xué)習(xí)筆記

這個(gè)文集中文章主要是自己在學(xué)習(xí)中記錄的重要知識(shí)點(diǎn),方便日后查閱。

一、正常生命周期

  1. 從當(dāng)前Activity啟動(dòng)一個(gè)新的Activity,若新的Activity使用的是透明主題,那么當(dāng)前Activity不會(huì)回調(diào)onStop。
  2. 當(dāng)前Activity A 啟動(dòng)新的Activity B 是先執(zhí)行A的onPause,在執(zhí)行B的onResume。
  3. onPause和onStop中都不能做重量級的操作。

二、異常生命周期

  1. 當(dāng)Activity在異常的情況下終止的(橫豎屏切換),onPause、onStop、onDestroy都會(huì)被調(diào)用,還會(huì)調(diào)用onSaveInstanceState來保存當(dāng)前Activity的狀態(tài),改方法在onStop前調(diào)用。Activity重新創(chuàng)建后調(diào)用onRestoreInstanceState把Activity銷毀時(shí),保存的Bundle對象,作為參數(shù)傳遞給onRestoreInstanceState和onCreate方法來恢復(fù)數(shù)據(jù)。

  2. 內(nèi)存不足時(shí)會(huì)殺死優(yōu)先級第的Activity,Activity優(yōu)先級分類自上到下:

    1. 前臺(tái)Activity,正在和用戶交互的Activity,優(yōu)先級最高
    2. 可見非前臺(tái)ACtivity,列如當(dāng)前Activity被對話框擋住,無法操作
    3. 后臺(tái)Activity,已經(jīng)被暫停的Activity。
  3. 如果不想重新創(chuàng)建Activity,可以給Activity指定configChanges屬性。

三、Activity的LaunchMode

  1. 使用非Activity類型的Context(如ApplicationContext),去啟動(dòng)一個(gè)standard模式的Activity,會(huì)報(bào)錯(cuò)。因?yàn)閟tandard模式的Activity會(huì)進(jìn)入啟動(dòng)它的Activity所屬的任務(wù)棧中,而非Activity類型的沒有任務(wù)棧。解決方法:為新啟動(dòng)的Activity指定FLAG_ACTIVITY_NEW_TASK模式。
  2. singleTop和singleTask都會(huì)回到onNewIntent。
  3. 在Intent設(shè)置的啟動(dòng)模式要優(yōu)先于AndroidMenifest設(shè)置隱式啟動(dòng)模式
  4. FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS具有這個(gè)標(biāo)記的Activity不會(huì)出現(xiàn)在歷史Activity的列表中。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容