我越來越與活動啓動模式混淆。這是場景。多任務與單任務
活動A - 主,發射與singleTask啓動模式 活動B - singleTask啓動模式 活動Ç - 標準啓動模式
現在,這裏是我在做什麼
活動A>活動B>活動C
然後我按主頁按鈕。我從最近的應用程序恢復應用程序。實際發生的是,
活動A
但我已經閱讀文檔,它應該是這樣的簡歷
活動A>活動B
後還是我失去了一些東西?
我越來越與活動啓動模式混淆。這是場景。多任務與單任務
活動A - 主,發射與singleTask啓動模式 活動B - singleTask啓動模式 活動Ç - 標準啓動模式
現在,這裏是我在做什麼
活動A>活動B>活動C
然後我按主頁按鈕。我從最近的應用程序恢復應用程序。實際發生的是,
活動A
但我已經閱讀文檔,它應該是這樣的簡歷
活動A>活動B
後還是我失去了一些東西?
那麼,很大程度上取決於您如何爲清單中的各種活動設置taskAffinity
。
讓我們假設你配置了它,以便活動A
和活動B
有不同的taskAffinity
(這是你應該配置它的方式)。當您啓動應用程序時,Android會創建一個包含A
的新任務。當您從A
啓動B
時,Android應創建另一個僅包含B
的新任務。包含A
的任務將發送到後臺。您現在應該有2個任務,其中一個僅包含A
,另一個僅包含B
。當您從B
啓動C
時,第二個任務現在應該包含B->C
。當您按下HOME按鈕時,第二項任務將發送到後臺。
現在,當您查看最近的任務列表時,實際上應該會看到2個應用程序的任務。根據您選擇哪一個,您將獲得僅包含A
的任務或包含B->C
的任務。
這就是爲什麼你不應該使用特殊的啓動模式singleTask
或singleInstance
,因爲他們做了很多你不期望的東西。如果您無視這個建議並使用這些啓動模式,您必須瞭解taskAffinity
如何影響活動啓動到各種任務的方式,並且您還需要知道,您最終可能會完成多項任務,在這種情況下您需要爲用戶提供一種從最近任務列表返回正確任務的方式。這也意味着您可能需要爲任務提供不同的標籤和/或任務的不同圖標,以幫助用戶找到恢復的正確任務。