美文网首页
Activity - 管理任务(2)

Activity - 管理任务(2)

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

    1. 管理任务和返回堆栈的方式(Activity和任务的默认行为)

    Android 管理任务和返回堆栈的方式是将所有接连启动的 Activity 放到同一任务和一个“后进先出”堆栈中,
    这对于大多数应用都很有效,而且不必担心 Activity 如何与任务相关联,或者它们如何存在于返回堆栈中。

    2. 管理方式例外

    不过,您可能需要决定是否要打破正常行为。
    或许希望应用中的某个 Activity 在启动时开启一个新的任务而不是被放入当前的任务中),
    或者当启动某个 Activity 时,您希望调用它的一个现有实例(而不是在返回堆栈顶部创建一个新实例),
    或者希望在用户离开任务时清除返回堆栈中除根 Activity 以外的所有 Activity。

    2.1 属性 和 flag

    可以借助 <activity> 清单元素中的属性
    以及传递给 startActivity() 的 intent 中的标记(flag)来实现上述目的。

    在这方面,可以使用的主要 <activity> 属性包括:
    taskAffinity
    launchMode
    allowTaskReparenting
    clearTaskOnLaunch
    alwaysRetainTaskState
    finishOnTaskLaunch

    可以使用的主要 intent 标记(flag)包括:
    FLAG_ACTIVITY_NEW_TASK
    FLAG_ACTIVITY_CLEAR_TOP
    FLAG_ACTIVITY_SINGLE_TOP

    注意:大多数应用不应打破 Activity 和任务的默认行为。
    如果确定需要让 Activity 改变默认行为,请谨慎操作,
    并且务必要测试该 Activity 在以下情况下的可用性:启动期间以及您通过返回按钮从其他 Activity 和任务返回该 Activity 时。
    务必要测试是否存在可能与用户预期的行为冲突的导航行为。

    参考文献:
    https://developer.android.com/guide/components/activities/tasks-and-back-stack

    相关文章

      网友评论

          本文标题:Activity - 管理任务(2)

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