4種啟動模式
- standard 標(biāo)準(zhǔn)模式,默認模式吱雏,正常activity task的進出棧拒贱。
- singleTop 棧頂復(fù)用耕蝉,如果剛好是在activity task的棧頂崔梗,無需重新創(chuàng)建,直接調(diào)用onNewIntent()垒在。
以上兩種方式都是用于單個任務(wù)棧蒜魄,或者單個APP應(yīng)用進程扔亥。
singleTask 棧內(nèi)復(fù)用,全局單例谈为,如果activity task棧已經(jīng)存在旅挤,就直接調(diào)用,并清除上面的所有activity伞鲫,也是調(diào)用onNewIntent()粘茄,可以在同個任務(wù)棧或不同任務(wù)棧使用秕脓。
singleInstance 單一實例柒瓣,重新創(chuàng)建一個任務(wù)棧,而且這個任務(wù)棧只能有一個activity吠架,如果已經(jīng)創(chuàng)建了芙贫,也是調(diào)用onNewIntent(),是不同任務(wù)棧的使用傍药。
這兩個在不同任務(wù)棧使用磺平,activity跳轉(zhuǎn)會發(fā)生task切換,入場動畫會不一樣拐辽。allowTaskReparenting屬性不會有task切換拣挪,但是是Android9,10失效了薛训。
taskAffinity :activity的任務(wù)棧分組媒吗,默認app包名,設(shè)置不同taskAffinity乙埃,會啟動不同任務(wù)棧闸英,會發(fā)生task切換,最近任務(wù)列表多個同名task介袜,只能顯示一個甫何,singleInstance 如果有同名的task,taskAffinity 沖突遇伞,其他則會被隱藏辙喂。最近任務(wù)列表看到的task未必活著,看不到未必死了鸠珠。