学习笔记—Activity的启动模式

本文详细介绍了Android中Activity的不同启动模式及其对任务栈的影响。包括standard标准模式、SingleTop栈顶唯一模式、SingleTask栈内唯一模式和SingleInstance单例模式,并解释了这些模式下Activity如何被创建和管理。

Activity的启动模式决定了Activity被激活时,如何添加到任务栈

注:任务栈(Task Stack)
任务栈记录了当前应用程序里打开的若干个Activity,当按下Back键时,将根据任务栈里的Activity的顺序来决定将要被显示出来的Activity。
当新的Activity被激活时,伴随着“压栈”操作,原有任务栈里所有Activity都被“压”下去,同时,新的Activity将位于栈顶,而栈顶的Activity将是前台显示的Activity,即运行态

通过AndroidManifest.xml中的Activity节点的LaunchMode属性可以配置每个Activity的启动模式。

  • standard:标准模式(默认)
    standard模式的Activity可以被反复激活,且每次激活的都是新的Activity对象。
  • SingleTop:栈顶唯一
    如果Activity已经位于栈顶,再次激活时,不会创建新的Activity对象,反之,如果被激活的Activity没有处于栈顶,则还是会创新新的Activity对象。
  • SingleTask:栈内唯一
    被激活的Activity位于栈顶,且在站内只有1个,即如果当前任务栈没有该Activity,则直接创建并压栈,当被激活的Activity自然处于栈顶位置,如果当前任务栈中已经存在该Activity,则在栈中该Activity之上的所有Activity被强制出栈(被销毁),且被激活的Activity自然弹栈,获得栈顶位置,显示在前台。
  • SingleInstance:单例
    被激活的Activity在任务栈绝对有且仅有1个,处于该模式下的Activity将独立存在与一个专属的任务栈中。

注意:当Activity的启动模式(lanchMode)被配置为singleTask或singleInstance时,Activity归属于哪个任务栈,取决于Activity的taskAffinity属性,该属性是通过AndroidManifest.xml进行配置的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值