也許是我的英文理解能力問題,Google關於launchMode的描述總是讓我困惑,所以我就分別測試了這幾種模式,按照我的理解重新整理一下文字
A - standard:默認模式,總是創建新的A實例,同一個任務可以有多個A的實例
Task堆棧:A1->A2->A3->A4
B - singleTop:類似於standard,不過,當堆棧頂部是B的實例時,不會創建新的B實例(A1創建B1, 這時B1可以創建A2,但不能創建B的新實例,A2可以創建新的B實例)
Task堆棧:A1->B1->A2->B2
C - singleTask:B1在新的task創建C的實例,C可以在自己的task中創建B2和A2,A2啟動C時,不會創建新的C實例,而是直接轉到C的當前實例,並且,C返回時,直接返回啟動C的B1,而不是轉入C之前的A2
Task堆棧:A1->B1
\
C->B2->A2
D - singleInstance:類似於singleTask,但新的task只能有D一個實例,D啟動的B2會在原來的task創建。B2無法返回D,而是返回到B1,A1退出後,可以看到D還在。
Task堆棧:A1-B1 B2->A2
\ /
D