Android啓動模式的實踐

          standard:標準模式

 

  1. 每次啓動app,TaskId都+1

    每次點擊按鈕,TaskId不變

  2. singleTop:Task頂單例模式

  3. 當將要被啓動的Activity已經位於Task棧頂的時候,系統不會重新創建目標Activity的實例,而是直接複用已有的Activity實例

  4. 當將要被啓動的Activity沒有位於Task棧頂的時候,此時系統會重新創建目標Activity的實例,並且把它加載到Task的棧頂(此時與標準模式完全相同)

  5. singleTask:Task內單例模式(A是standard,B是singleTask)

  6. A->B,Task棧裏面由下往上,A->B,B裏面點擊按鈕,跳轉到A,A是standard

  7. Task棧裏面由下往上,A->B->A,在這個A再點擊跳轉到B,B是singleTask,系統將B上面所有的Activity移出,讓B進入棧頂,此時Task棧裏面只有兩個,A->B

         

B移除
A移除
B
A

 

【注意點】:

       如果將要啓動的目標Activity已經存在,但是沒有位於棧頂,系統會把位於該Activity上面的所有Activity移除Task棧,使得目標activity轉入棧頂

singleInstance:全局單例模式

系統保證無論從那個Task中啓動目標Activity,只會創建一個目標Activity實例,並會使用一個全新的Task棧來裝載該Activity實例

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章