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

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

标记所有 activity

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

图 1. 正确标记 activity 的示例。

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

分配 RecentTasks

要在启动器中使用 RecentTasks 作为“最近应用”部分,请确保在 AndroidManifest.xml 文件中正确定义了您的 taskAffinity 元素,并确保您一致地管理任务和返回堆栈。

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

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

调试提示

调试时请注意以下事项

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