1.standard標(biāo)準(zhǔn)模式
特點(diǎn):系統(tǒng)每啟動(dòng)一次activity,都會(huì)創(chuàng)建一個(gè)新的實(shí)例,并將其添加在啟動(dòng)者任務(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)存在某一個(gè)activity實(shí)例,則啟動(dòng)該activity都會(huì)復(fù)用此activity,并且生命周期會(huì)調(diào)用onNewIntent(),不會(huì)調(diào)用onCreate(),onStart(),同時(shí),singleTask具有清除相同任務(wù)棧上層所有activity的效果蝎宇。
示例:①相同任務(wù)棧:A->B1->C->B2,再依次點(diǎn)擊返回:
(啟動(dòng)按鈕)taskA onCreate->?
taskB1 onCreate->?
taskC onCreate->
(taskB1 onNewIntent->taskC onDestroy)->? ? ? ? ? ?
?(返回按鈕)taskB1 onDestroy->
taskA onDestroy,
相同任務(wù)棧,始終調(diào)用的是B1,B2不會(huì)出現(xiàn)盖文。
②不同任務(wù)棧:A,C,D屬于棧m,并且launchmode為singletask,B屬于棧n ,launchmode為singletask,
?模擬A->B1->D->B2,依次點(diǎn)擊返回,
(啟動(dòng))taskA onCreate->
taskB1 onCreate different task->
taskD onCreate->
taskB1 onNewIntent ifferent task->? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?(返回)taskB1 onDestroy? different task->
taskD onDestroy->
taskA onDestroy,
可見存在于不同任務(wù)棧的D activity不會(huì)被清除;
模擬A->B->D1->C->D2,依次點(diǎn)擊返回,
(啟動(dòng))taskA onCreate->
taskB onCreate different task->
taskD1 onCreate->
taskC onCreate->? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?(taskD1onNewIntent- >taskC? onDestroy)->
?(返回)taskD1 onDestroy->
taskA onDestroy->
taskB onDestroy different task,
應(yīng)用會(huì)先關(guān)閉最靠前任務(wù)棧的activity,然后關(guān)閉后面任務(wù)棧的activity,并不是按照activity啟動(dòng)順序進(jìn)行關(guān)閉的,與任務(wù)棧順序有關(guān)系;
?②不同任務(wù)棧:A,C,D屬于棧m,并且launchmode為standart,B屬于棧n ,launchmode為singletask:
模擬A->B1->D->B2,依次點(diǎn)擊返回,
(啟動(dòng))taskA onCreate->
taskB1 onCreate different task->
taskD onCreate->
(taskB1 onNewIntent different task ->taskD onDestroy)->
(返回)taskB1 onDestroy different task->
taskA onDestroy
可見當(dāng)被啟動(dòng)的activity啟動(dòng)模式是standard的時(shí)候,被啟動(dòng)的activity會(huì)被加入到啟動(dòng)它的activity棧中,當(dāng)被啟動(dòng)的activity不是standard時(shí),不會(huì)被加入到啟動(dòng)者的任務(wù)棧中餐禁。
3.singleTop棧頂復(fù)用
特點(diǎn):位于頂部的activity會(huì)被復(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)只會(huì)創(chuàng)建一個(gè)實(shí)例,并且只存在與一個(gè)單獨(dú)的任務(wù)棧中蹲诀。