Activity启动的四种模式

Activity的四种启动模式

1.standard

2.singleTop

3.singleTask

4.singleInstance

#

配置方式

在清单文件AndroidManifest.xml配置的LunchMode属性即可。

#

1. standard模式介绍

standard模式是所启动的Activity都是在同一个task容器栈下(栈结构,先进后出),
不会重新创建新的task容器栈。先压入栈的Activity实例按顺序入栈底,后入栈在栈顶
,处于栈的顶部Activity实例处于活动状态,其他处于非活动状态。按物理返回键,退出
当前所处活动状态Activity窗口,这样就会从task容器栈中弹出,显示在手机主屏幕上,
从而,有非活动状态转换成活动的状态。模式模式就是standard模式

2. singleTop模式介绍

如果task容器栈顶(必须是在栈顶)存在已经激活的Activity实例,就会重用当前栈顶的
Activity实例,不会再重新去实例化Activity对象。

3. singleTask模式介绍

singletask模式,启动的目标Activity实例如果已经存在task容器栈中,不管当前实例
处于栈的任何位置,无论栈顶还是栈底,只要目标Activity实例处于task容器栈中,都可
以重用该Activity实例对象,并把处于该Activity实例对象上面全部Activity实例清除
掉,所以,task容器栈中永远只有唯一实例对象,不会存在两个相同的实例对象。

4. singleInstance模式介绍

这种启动模式比较特殊,他会启动一个新的栈结构,将activity放入其中,并且保证不再
有其他的activity进入。

模拟运行过程:

假设fistActivity启动模式为默认standard模式,secondActivity启动模式为
singleInstance,他们两个可以相互调用。

1. 从firstActivity启动secondActivity,
2. 在弹出的secondActivity中启动firstActivity。
3. 现在有两个栈结构,A和B,A中存放两个firstActivity,B中存放一个secondActivity。
4. 按返回键的时候,会先将A中的两个fistActivity退出栈,A栈空了之后再进入B栈,
   将B栈的secondActivity退出栈。

singleInstance启动模式,简单说就是可以共享某个Activity。比如,应用1的任务容器
栈中创建了MainActivity实例,应用2也要激活MainActivity,则不需要创建
MainActivity实例,直接可以公用MainActivity实例。

 尤其值得注意:应用1启动MainActivity,按home键;打开应用2启动应用1的
MainActivity实例。在按home键,打开应用1,这时候应用1的界面是应该是处于
MainActivity界面实例。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值