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

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

为所有 activity 添加标签

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

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

为“最近使用的应用”配置任务

如需为启动器中的最近用过部分使用 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 相同的图标、圆形图标和标签。
  • 如果在点按启动器中的相应条目后,系统未启动任何内容,请检查在 launcher 中过滤出的 Logcat 是否存在错误,因为 trampoline activity 可能会导致这种问题。