異常情況下activity生命周期分析:
情況1:資源相關(guān)的系統(tǒng)配置發(fā)生改變導(dǎo)致activity被殺死并重新創(chuàng)建
比如手機(jī)橫豎屏切換,當(dāng)系統(tǒng)配置發(fā)生改變后activity被銷毀重建,他的onPause,onStop,onDestroy都會(huì)被調(diào)用,由于是在異常情況下終止的,系統(tǒng)會(huì)調(diào)用onSaveInstanceState方法來(lái)保存當(dāng)前activity的狀態(tài),這個(gè)方法的調(diào)用是在onStop之前,但是和onPause沒(méi)有既定的時(shí)序關(guān)系.
情況2:資源內(nèi)存不足導(dǎo)致低優(yōu)先級(jí)的activity被殺死
數(shù)據(jù)存儲(chǔ)和回復(fù)和情況1一樣, 優(yōu)先級(jí)可分為如下三種:
(1) 前臺(tái)activity--正在和用戶交互的activity,優(yōu)先級(jí)最高
(2) 可見(jiàn)單非前臺(tái)activity--比如activity彈出一個(gè)對(duì)話框,導(dǎo)致activity可見(jiàn)但是位于后臺(tái)無(wú)法和用戶直接交互
(3) 后臺(tái)activity--已經(jīng)被暫停,比如執(zhí)行了onStop,優(yōu)先級(jí)最低