Activity的4種launchMode

也許是我的英文理解能力問題,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

發佈留言