显示在最近使用和应用恢复中

启动器 显示任何最近恢复的标签和图标 任务。如果您的应用包有多个应用作为独立的启动器活动,则启动器不知道为非启动器活动显示哪个标签和图标,例如从磁贴或通知启动的活动。这可能会导致您的应用在启动器中的“最近”列表中不显示,或者显示不正确。

标记所有活动

确保您的活动(包括非启动器活动)在您的清单文件中正确标记,如下面的步骤所示。

图 1. 正确标记的活动示例。

  1. 对于您的 AndroidManifest.xml 文件中的每个活动,确定它属于哪个启动器活动。
  2. 将父启动器活动中的图标、圆形图标和标签复制到每个关联的非启动器活动中。
  3. 对于在多个启动器活动之间共享的活动,请决定显示哪个图标和标签来代表所有这些活动。

分配 RecentTasks

要使用 RecentTasks 用于启动器中的“最近”部分,请确保您的 taskAffinity 元素在您的 AndroidManifest.xml 文件中正确定义,并且您始终如一地管理您的任务和后退堆栈。

在分配任务时,请牢记以下注意事项

  • 为应用中的每个任务选择一个唯一的 taskAffinity 名称。您可以将每个启动器活动及其子级视为一个任务。将该 taskAffinity 分配给清单文件中的每个相关活动。
  • 避免使用 FLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_CLEAR_TOP 标记调用 startActivity()
  • 避免创建仅启动其他 Activity 的跳板 Activity。使用 SplashScreen API 创建启动画面。
  • 当您不希望 Activity 显示在最近使用部分时,请使用 android:excludeFromRecents="true"android:noHistory="true" 标记。
  • 确定最适合您的 Activity 的启动模式,并以此为基础进行开发。

调试技巧

在调试时注意以下事项:

  • 如果最近使用部分中出现同一应用的双重条目,请检查是否不当使用了 NEW_TASK 标记。
  • 如果显示了错误的图标或标签,请确保每个关联的非启动器 Activity 具有与其父 Activity 相同的图标、圆形图标和标签。
  • 如果系统在点击启动器中的条目后没有启动任何内容,请检查 Logcat(过滤为“启动器”)中的错误,因为此问题可能是由跳板 Activity 引起的。