針對每一項近期曾繼續使用的工作,啟動器會顯示標籤和圖示。如果應用程式套件裡,含有多個應用程式做為個別啟動器活動,則啟動器無法知道要為非啟動器活動 (例如資訊方塊或通知的活動) 顯示哪個標籤和圖示。這可能導致應用程式無法顯示在啟動器的「最近使用」清單中,或顯示不正確。
為所有活動加上標籤
請確認您的活動 (包括非啟動器活動) 已在資訊清單檔案中正確加上標籤,如下所示。
圖 1. 正確添加標籤的活動範例。
- 針對
AndroidManifest.xml
中的每個活動,判斷其所屬的啟動器活動。 - 複製父項啟動器活動中的圖示、圓形圖示和標籤,並貼到各個相關的非啟動器活動中。
如果活動由多個啟動器活動共用,請決定要顯示哪個圖示和標籤來代表所有啟動器活動。
指派 RecentTasks
如要在啟動器中的「最近使用」部分使用 RecentTasks
,請確認 taskAffinity
元素在 AndroidManifest.xml
檔案中已正確定義,且您管理工作和返回堆疊的方式一致。
指派工作時,請注意下列事項:
- 為應用程式中的每項工作選擇專屬的
taskAffinity
名稱。您可以將每個啟動器活動及其子項視為同一項工作。將taskAffinity
指派給資訊清單檔案中的每個相關活動。 - 避免使用
FLAG_ACTIVITY_NEW_TASK
或FLAG_ACTIVITY_CLEAR_TOP
呼叫startActivity()
。 - 請避免建立只用於啟動其他活動的「Trampoline 活動」。請使用 SplashScreen API 建立啟動畫面。
- 如果您不希望活動顯示在「最近使用」部分中,請使用
android:excludeFromRecents="true"
和android:noHistory="true"
旗標。 - 決定最適合您活動的啟動模式,然後據此開發。
偵錯提示
偵錯時,請注意下列事項:
- 如果單一應用程式的「最近使用」部分有重複項目,請檢查您使用
NEW_TASK
旗標的方式是否不當。 - 如果顯示出錯誤的圖示或標籤,請確認每個相關聯的非啟動器活動的圖示、圓形圖示和標籤,皆與其父項活動相同。
- 如果在輕觸啟動器中的項目後,系統並未啟動任何項目,請查看「啟動器」篩選的 Logcat 是否有錯誤,因為這個問題可能是 Trampoline 活動所致。