显示在“最近用过”和“应用恢复”部分中

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

为所有 activity 添加标签

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

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

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

分配 RecentTask

如需为启动器中的最近用过部分使用 RecentTasks,请确保在 AndroidManifest.xml 文件中正确定义 taskAffinity 元素,并以一致的方式管理任务和返回堆栈。

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

  • 为应用中的每项任务选择一个唯一的 taskAffinity 名称。您可以将每个启动器 activity 及其子级视为一项任务。将该 taskAffinity 分配给清单文件中的每一个相关 activity。
  • 避免使用 FLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_CLEAR_TOP 调用 startActivity()
  • 避免创建 trampoline activity,即仅启动其他 activity 的 activity。使用 SplashScreen API 创建启动画面。
  • 如果您不希望 activity 显示在最近用过部分中,请使用 android:excludeFromRecents="true"android:noHistory="true" 标志。
  • 为 activity 确定最佳启动模式,并在开发时谨记这一点。

调试提示

调试时请注意以下事项:

  • 如果单个应用在最近用过部分中有双重条目,请检查是否不当地使用了 NEW_TASK 标志。
  • 如果显示错误的图标或标签,请确保每个关联的非启动器 activity 具有与其父级 activity 相同的图标、圆形图标和标签。
  • 如果在点按启动器中的相应条目后,系统未启动任何内容,请检查在“启动器”中过滤出的 Logcat 是否存在错误,因为这种问题可能是由 trampoline activity 造成的。