Android activity加載模式

棧是什么?

任務(wù)棧Task,是用來(lái)放置activity的地方,即執(zhí)行特定任務(wù)時(shí)與用戶交互的一系列activity,這些activity的順序采取“先進(jìn)后出”的順序排列在堆棧中。作用:為了記錄用戶開(kāi)啟的那些activity,方便用戶進(jìn)行對(duì)activity的管理,幫助更好的維護(hù)用戶體驗(yàn)

activity的啟動(dòng)模式?

即activity啟動(dòng)時(shí)的策略,當(dāng)新啟動(dòng)一個(gè)activity時(shí),它會(huì)置于棧頂,并處于活動(dòng)狀態(tài),在AndroidManifest.xml中的標(biāo)簽的android:launchMode屬性設(shè)置,一共有4種啟動(dòng)模式,分別為standard、singleTop、singleTask、singleInstance

standard

默認(rèn)模式,不需要在AndroidManifest.xml里面配置,每次打開(kāi)新的Intent時(shí),都會(huì)創(chuàng)建新的實(shí)例,試用于絕大部分情況,因此,允許有多個(gè)相同實(shí)例存在,當(dāng)startActivity(new Intent(A.this, A.class)),這時(shí)任務(wù)棧會(huì)有兩個(gè)相同的A實(shí)例

singleTop

棧頂復(fù)用模式,這種其實(shí)和默認(rèn)standard大致一樣,只不過(guò)當(dāng)你啟動(dòng)的activity處于棧頂?shù)臅r(shí)候,那么不會(huì)生成新的實(shí)例,將調(diào)用 onNewIntent() 方法,避免棧頂?shù)腶ctivity被重復(fù)的創(chuàng)建,解決用戶體驗(yàn)問(wèn)題

singleTask

單一任務(wù)模式,activity只會(huì)在任務(wù)棧里面存在一個(gè)實(shí)例。如果要激活的activity,在任務(wù)棧里面已經(jīng)存在,就不會(huì)創(chuàng)建新activity,而是復(fù)用這個(gè)已經(jīng)存在的activity,調(diào)用 onNewIntent() 方法,并且清空當(dāng)前activity任務(wù)棧上面所有的activity,整個(gè)任務(wù)棧只有一個(gè)實(shí)例,節(jié)約內(nèi)存和cpu

singleInstance

單態(tài)單例模式,單一實(shí)例,整個(gè)手機(jī)操作系統(tǒng)里面只有一個(gè)實(shí)例存在。不同的應(yīng)用去打開(kāi)這個(gè)activity共享 公用的同一個(gè)activity。
他會(huì)運(yùn)行在自己?jiǎn)为?dú),獨(dú)立的任務(wù)棧里面,并且任務(wù)棧里面只有他一個(gè)實(shí)例存在。
應(yīng)用場(chǎng)景:呼叫來(lái)電界面 InCallScreen

引用
http://blog.csdn.net/self_study/article/details/48055011

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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