启动器 显示最近恢复的任何任务的标签和图标 任务。如果您的应用包有多个作为单独启动器 activity 的应用,启动器将不知道要为非启动器 activity(例如从功能块或通知启动的 activity)显示哪个标签和图标。这可能会 导致您的应用不会显示在启动器的最近用过列表中,也不会显示 错误。
为所有 activity 添加标签
请确保在您的清单文件中正确标记 activity(包括非启动器 activity),如以下步骤中所示。
图 1. 正确标记的 activity 示例。
- 对于
AndroidManifest.xml
文件中的每个 activity,确定它属于哪个启动器 activity。 - 将父级启动器 activity 中的图标、圆形图标和标签复制到每个关联的非启动器 activity。
对于在多个启动器 activity 之间共享的 activity,确定要显示哪个可代表所有这些 activity 的图标和标签。
分配 RecentTask
如需为启动器中的最近用过部分使用 RecentTasks
,请确保在 AndroidManifest.xml
文件中正确定义 taskAffinity
元素,并以一致的方式管理任务和返回堆栈。
在分配任务时,请注意以下事项:
- 为应用中的每项任务选择一个唯一的
taskAffinity
名称。您可以将每个启动器 activity 及其子级视为一项任务。将该taskAffinity
分配给清单文件中的每一个相关 activity。 - 避免使用
FLAG_ACTIVITY_NEW_TASK
或FLAG_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 造成的。
为您推荐
- 注意:当 JavaScript 处于关闭状态时,系统会显示链接文字
- 任务和返回堆栈
- 为应用创建自定义“快捷设置”功能块
- 了解 Jetpack Navigation