可以设置一个 Activity 作为任务的入口点,
方法是为该 Activity 提供一个 intent 过滤器,
并将 "android.intent.action.MAIN" 作为指定操作,
将 "android.intent.category.LAUNCHER" 作为指定类别。例如:
<activity ... >
<intent-filter ... >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
...
</activity>
这种 intent 过滤器可在 应用启动器中 显示 Activity 的图标和标签,
让用户可以启动 Activity 并在启动后随时返回到 该 Activity 创建的任务。
第二个作用非常重要:
用户必须能够离开任务,之后再使用此 Activity 启动器返回到该任务。
因此,只有当 Activity 具有 ACTION_MAIN 和 CATEGORY_LAUNCHER 过滤器时,
才应使用 "singleTask" 和 "singleInstance" 这两种启动模式,
它们会将 Activity 标记为 始终启动任务。
比如,可以想象一下,如果缺少该过滤器会发生什么情况:
intent 会启动 "singleTask" Activity,随之启动新任务,
用户花了一些时间在该任务上。然后,用户按主屏幕按钮。
此时,该任务会转到后台,不再可见。
现在,用户无法返回到该任务,因为它未显示在 应用启动器中。
实际上并不是要求同时具有 ACTION_MAIN 和 CATEGORY_LAUNCHER
对于那些您不希望用户能够返回到 Activity 的情况,
请将 <activity> 元素的 finishOnTaskLaunch 设置为 "true"(请参阅清除返回堆栈)。
网友评论