美文网首页
Activity - 管理任务(4) 定义启动模式 - 使用 I

Activity - 管理任务(4) 定义启动模式 - 使用 I

作者: 行走中的3卡 | 来源:发表于2022-12-21 19:33 被阅读0次

    启动 Activity 时,您可以在传送给 startActivity() 的 intent 中添加相应的标记来修改 Activity 与其任务的默认关联**。
    可以使用以下标记来修改默认行为:

    1. FLAG_ACTIVITY_NEW_TASK

    新任务中启动 Activity。
    如果现在启动的 Activity 已经有任务在运行,则系统会将该任务转到前台恢复其最后的状态,
    而 Activity 将在 onNewIntent() 中收到新的 intent。
    这与上一节中介绍的 "singleTask" launchMode 值产生的行为相同。

    2. FLAG_ACTIVITY_SINGLE_TOP

    如果要启动的 Activity 是当前 Activity(即位于返回堆栈顶部的 Activity),
    则现有实例会收到对 onNewIntent() 的调用,而不会创建 Activity 的新实例。
    这与上一节中介绍的 "singleTop" launchMode 值产生的行为相同。

    3. FLAG_ACTIVITY_CLEAR_TOP

    如果要启动的 Activity 已经当前任务中运行,则不会启动该 Activity 的新实例,
    而是会销毁位于它之上的所有其他 Activity,
    并通过 onNewIntent() 将此 intent 传送给它的已恢复实例(现在位于堆栈顶部)。
    launchMode 属性没有可产生此行为的值。

    FLAG_ACTIVITY_CLEAR_TOP 最常与 FLAG_ACTIVITY_NEW_TASK 结合使用
    将这两个标记结合使用,可以查找其他任务中的现有 Activity,并将其置于能够响应 intent 的位置。

    注意:如果指定 Activity 的启动模式为 "standard",系统也会将其从堆栈中移除,
    并在它的位置启动一个新实例来处理传入的 intent。
    这是因为当启动模式为 "standard" 时,始终会为新 intent 创建新的实例。

    参考文献:
    https://developer.android.com/guide/components/activities/tasks-and-back-stack?hl=zh-cn#IntentFlagsForTasks

    相关文章

      网友评论

          本文标题:Activity - 管理任务(4) 定义启动模式 - 使用 I

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