该 启动器 显示任何最近恢复的标签和图标 任务。如果您的应用包有多个应用作为独立的启动器活动,则启动器不知道为非启动器活动显示哪个标签和图标,例如从磁贴或通知启动的活动。这可能会导致您的应用在启动器中的“最近”列表中不显示,或者显示不正确。
标记所有活动
确保您的活动(包括非启动器活动)在您的清单文件中正确标记,如下面的步骤所示。
图 1. 正确标记的活动示例。
- 对于您的
AndroidManifest.xml
文件中的每个活动,确定它属于哪个启动器活动。 - 将父启动器活动中的图标、圆形图标和标签复制到每个关联的非启动器活动中。
对于在多个启动器活动之间共享的活动,请决定显示哪个图标和标签来代表所有这些活动。
分配 RecentTasks
要使用 RecentTasks
用于启动器中的“最近”部分,请确保您的 taskAffinity
元素在您的 AndroidManifest.xml
文件中正确定义,并且您始终如一地管理您的任务和后退堆栈。
在分配任务时,请牢记以下注意事项
- 为应用中的每个任务选择一个唯一的
taskAffinity
名称。您可以将每个启动器活动及其子级视为一个任务。将该taskAffinity
分配给清单文件中的每个相关活动。 - 避免使用
FLAG_ACTIVITY_NEW_TASK
或FLAG_ACTIVITY_CLEAR_TOP
标记调用startActivity()
。 - 避免创建仅启动其他 Activity 的跳板 Activity。使用 SplashScreen API 创建启动画面。
- 当您不希望 Activity 显示在最近使用部分时,请使用
android:excludeFromRecents="true"
和android:noHistory="true"
标记。 - 确定最适合您的 Activity 的启动模式,并以此为基础进行开发。
调试技巧
在调试时注意以下事项:
- 如果最近使用部分中出现同一应用的双重条目,请检查是否不当使用了
NEW_TASK
标记。 - 如果显示了错误的图标或标签,请确保每个关联的非启动器 Activity 具有与其父 Activity 相同的图标、圆形图标和标签。
- 如果系统在点击启动器中的条目后没有启动任何内容,请检查 Logcat(过滤为“启动器”)中的错误,因为此问题可能是由跳板 Activity 引起的。
推荐
- 注意:当 JavaScript 关闭时,链接文本将显示。
- 任务和返回堆栈
- 为您的应用创建自定义快速设置磁贴
- 学习 Jetpack Navigation