Activity - 管理任务(2)

2022-12-19  本文已影响0人  行走中的3卡

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

上一篇下一篇

猜你喜欢

热点阅读