Activity啟動模式

1.standard標(biāo)準(zhǔn)模式

特點(diǎn):系統(tǒng)每啟動一次activity,都會創(chuàng)建一個新的實(shí)例,并將其添加在啟動者任務(wù)棧的棧頂。

示例: A1->B->C->A2, 則棧內(nèi)元素從棧頂?shù)綏5滓来螢锳2,C,B,A1,依次出棧順序也為A2,C,B,A1。

2.singleTask棧內(nèi)復(fù)用

特點(diǎn):這是一種單實(shí)例模式,只要棧內(nèi)存在某一個activity實(shí)例,則啟動該activity都會復(fù)用此activity,并且生命周期會調(diào)用onNewIntent(),不會調(diào)用onCreate(),onStart(),同時,singleTask具有清除相同任務(wù)棧上層所有activity的效果。

示例:①相同任務(wù)棧:A->B1->C->B2,再依次點(diǎn)擊返回:

(啟動按鈕)taskA onCreate->?

taskB1 onCreate->?

taskC onCreate->

(taskB1 onNewIntent->taskC onDestroy)->? ? ? ? ? ?

?(返回按鈕)taskB1 onDestroy->

taskA onDestroy,

相同任務(wù)棧,始終調(diào)用的是B1,B2不會出現(xiàn)。

②不同任務(wù)棧:A,C,D屬于棧m,并且launchmode為singletask,B屬于棧n ,launchmode為singletask,

?模擬A->B1->D->B2,依次點(diǎn)擊返回,

(啟動)taskA onCreate->

taskB1 onCreate different task->

taskD onCreate->

taskB1 onNewIntent ifferent task->? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

?(返回)taskB1 onDestroy? different task->

taskD onDestroy->

taskA onDestroy,

可見存在于不同任務(wù)棧的D activity不會被清除;

模擬A->B->D1->C->D2,依次點(diǎn)擊返回,

(啟動)taskA onCreate->

taskB onCreate different task->

taskD1 onCreate->

taskC onCreate->? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

?(taskD1onNewIntent- >taskC? onDestroy)->

?(返回)taskD1 onDestroy->

taskA onDestroy->

taskB onDestroy different task,

應(yīng)用會先關(guān)閉最靠前任務(wù)棧的activity,然后關(guān)閉后面任務(wù)棧的activity,并不是按照activity啟動順序進(jìn)行關(guān)閉的,與任務(wù)棧順序有關(guān)系;

?②不同任務(wù)棧:A,C,D屬于棧m,并且launchmode為standart,B屬于棧n ,launchmode為singletask:

模擬A->B1->D->B2,依次點(diǎn)擊返回,

(啟動)taskA onCreate->

taskB1 onCreate different task->

taskD onCreate->

(taskB1 onNewIntent different task ->taskD onDestroy)->

(返回)taskB1 onDestroy different task->

taskA onDestroy

可見當(dāng)被啟動的activity啟動模式是standard的時候,被啟動的activity會被加入到啟動它的activity棧中,當(dāng)被啟動的activity不是standard時,不會被加入到啟動者的任務(wù)棧中。

3.singleTop棧頂復(fù)用

特點(diǎn):位于頂部的activity會被復(fù)用。

示例:A->B->C->D->C,則棧順序?yàn)镃,D,C,B,A;??A->B->C->C,則棧順序?yàn)镃,B,A。

4.singleInstance單棧復(fù)用

特點(diǎn):系統(tǒng)只會創(chuàng)建一個實(shí)例,并且只存在與一個單獨(dú)的任務(wù)棧中。

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

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

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