3 回答

TA貢獻1856條經驗 獲得超5個贊
從Android開發(fā)指南的Application Fundamentals頁面:
默認情況下,應用程序中的所有活動都具有彼此的親和力 - 也就是說,它們都優(yōu)先屬于同一任務。
“singleInstance”活動是其任務中唯一的活動。如果它啟動另一個活動,則無論其啟動模式如何,該活動都將啟動到另一個任務 - 就像FLAG_ACTIVITY_NEW_TASK在意圖中一樣。在所有其他方面,“singleInstance”模式與“singleTask”相同。
如上所述,“singleTask”或“singleInstance”活動永遠不會超過一個實例,因此該實例應該處理所有新意圖。“singleInstance”活動始終位于堆棧的頂部(因為它是任務中唯一的活動),因此它始終處于處理意圖的位置。但是,“singleTask”活動在堆棧中可能有也可能沒有其他活動。如果是,則無法處理意圖,并且意圖被刪除。(即使意圖被刪除,它的到來也會導致任務進入前臺,它將保留在前臺。)
由于具有任一啟動模式的活動永遠不會有多個實例,因此后退按鈕將始終將您帶到您的案例中的活動的現(xiàn)有實例。
一個重要的區(qū)別是“singleTask”不需要為選擇某些內容時啟動的新活動創(chuàng)建新任務。也不必每次都在后退按鈕上刪除新任務。
由于您的Activity堆棧完全屬于一個用戶“任務”,并且聽起來您沒有復雜的Intent結構,其中singleInstance可能有利于始終處理它們,我建議使用singleTask啟動模式。
這是一篇很好的博客文章,了解更多信息,以及圖片來源:Android活動和任務系列 - Android UI組件模型簡介
- 3 回答
- 0 關注
- 933 瀏覽
添加回答
舉報