Activity?的生命周期以及啟動模式對于我們來說應(yīng)該算是入門知識了站故,我這里也是重溫知識的時候在順手寫個筆記轨蛤,對于大部分人來說只要看個圖就好了哈。
異常生命周期的觸發(fā)情況
1. 資源相關(guān)的系統(tǒng)配置發(fā)生改變導(dǎo)致 Activity 被 kill 并重新創(chuàng)建
2.?資源內(nèi)存不足導(dǎo)致低優(yōu)先級的 Activity 被 kill
各個啟動模式的區(qū)別
standard:標(biāo)準(zhǔn)模式缸逃,每次啟動一個 Activity 都會重新創(chuàng)建一個新的實(shí)例少辣,不管這個實(shí)例是否存在
singleTop:棧頂復(fù)用模式,如果新的 Activity 已經(jīng)位于任務(wù)棧的棧頂笤成,那么此 Activity 不會被重新創(chuàng)建评架,同時它的 onNewIntent() 方法被回調(diào),但不會再次回調(diào) onCreate()炕泳,onStart()纵诞;如果 Activity 的實(shí)例已存在但不再棧頂,那么新的 Activity 仍然會重新創(chuàng)建
singleTask:棧內(nèi)復(fù)用模式培遵,只要 Activity 在一個棧中存在浙芙,那么多次啟動此 Activity 都不會重新創(chuàng)建實(shí)例,然后回調(diào) onNewInent()荤懂,并且壓在該 Activity 之上的 Activity 都會被移出棧內(nèi)
singleInstance:單實(shí)例模式茁裙,除了擁有 singleTask 的特性外,該模式只能單獨(dú)的位于一個任務(wù)棧中节仿。
各個啟動模式的使用場景
singleTop:從外界可能多次跳轉(zhuǎn)到一個界面
singleTask:之前打開過的頁面晤锥,打開之前的頁面就ok,不再新建
singleInstance:某個應(yīng)用中用到了google地圖,當(dāng)退出該應(yīng)用的時候矾瘾,進(jìn)入google地圖女轿,還是剛才的界面