美文网首页
Activity - 管理任务(7) 启动任务

Activity - 管理任务(7) 启动任务

作者: 行走中的3卡 | 来源:发表于2022-12-24 20:50 被阅读0次

可以设置一个 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"(请参阅清除返回堆栈)。

相关文章

网友评论

      本文标题:Activity - 管理任务(7) 启动任务

      本文链接:https://www.haomeiwen.com/subject/jqwyqdtx.html