Android Activity 任务和返回栈

Activity中的属性

<a id="launchMode" name="launchMode">launchMode</a>

  • standard (默认启动方式)
    可以被实例化多次,一个任务可以有多个此Activity实例
  • singleTop
    如果当前任务顶部已存在实例,通过Intent启动Activity不会创建新的实例。可以被实例化多次,每个实例可以位于不同的任务,一个任务中可以有多个此实例。
  • singleTask
    创建新任务并实例化Activity,如果Activity在已有的任务中存在实例,则系统会通过调用现有实例的 onNewIntent()
    方法向其传送 Intent(对同一任务中位于此实例前面的Activity执行出栈),而不是创建新实例。一次只能存在 Activity 的一个实例。(一般应用Activity不建议使用此模式,MainActivity除外)
    注:未指定taskAffinity情况下实例化 singleTask的Activity并不一定创建新的任务,新实例化的Activity可能会进入已有的任务中,除非指定与包名不同的taskAffinity(个人理解)
  • singleInstance
    与 "singleTask" 相同,只是系统不会将任何其他 Activity 启动到包含实例的任务中。该 Activity 始终是其任务唯一仅有的成员;由此 Activity 启动的任何 Activity 均在单独的任务中打开(一般应用Activity不建议使用此模式)
显示如何将启动模式为“singleTask”的 Activity 添加到返回栈。 如果 Activity 已经是某个拥有自己的返回栈的后台任务的一部分,则整个返回栈也会上移到当前任务的顶部。

<a id="taskAffinity"> </a>

<a id="taskAffinity">taskAffinity</a>

taskAffinity指示 Activity 优先属于哪个任务。默认情况下,同一应用中的所有 Activity 彼此关联。 因此,默认情况下,同一应用中的所有 Activity 优先位于相同任务中。 不过,您可以修改 Activity 的默认关联。 在不同应用中定义的 Activity 可以共享关联,或者可为在同一应用中定义的 Activity 分配不同的任务关联。
taskAffinity在一下两种情况有效:

<a id="allowTaskReparenting" name="allowTaskReparenting">allowTaskReparenting </a>

如果在任务的根 Activity 中将此属性设置为 "true",则不会发生刚才所述的默认行为。即使在很长一段时间后,任务仍将所有 Activity 保留在其堆栈中

<a id="clearTaskOnLaunch" name="clearTaskOnLaunch">clearTaskOnLaunch </a>

它与 alwaysRetainTaskState 正好相反。 即使只离开任务片刻时间,用户也始终会返回到任务的初始状态

<a id="alwaysRetainTaskState" name="alwaysRetainTaskState">alwaysRetainTaskState </a>

此属性类似于 clearTaskOnLaunch ,但它对单个 Activity 起作用,而非整个任务。 此外,它还有可能会导致任何 Activity 停止,包括根 Activity。 设置为 "true"
时,Activity 仍是任务的一部分,但是仅限于当前会话。如果用户离开然后返回任务,则任务将不复存在。

<a id="finishOnTaskLaunch" name="finishOnTaskLaunch"> finishOnTaskLaunch</a>

每当用户再次启动其任务(在主屏幕上选择任务)时,是否应关闭(完成)现有 Activity 实例 —“true”表示应关闭,“false”表示不应关闭。 默认值为“false”。如果该属性和 allowTaskReparenting 均为“true”,则优先使用该属性。 Activity 的亲和关系会被忽略。 系统不是更改 Activity 的父项,而是将其销毁。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容