Android任务栈原理

任务栈的原理
可以在AndroidMenifest.xml文件 的activity里配置任务栈的启动模式,
android:launchMode=""
1、标准模式(standard)
     根据先进后出原则,只要是激活,就会生成一个新的实例,在前一个
     activity的顶端,比如oneActivity创建,点击进入twoActivity,再
     点击一次twoActivity,然后点击进入oneActivity,这时已经在栈中
     创建了四个activity实例,需要点击四次返回才能退回主界面

2、独享任务顶端(SingleTop)
     如果任务栈栈顶有一个这样的实例,该实例将会被重用,不会创建新的实例
     比如oneActivity创建,点击进入twoActivity,再点击一次twoActivity,这
     时twoActivity不会被创建,之前的twoActivity会被重用。注意,如果一个
     Activity被重用了,就会调用onNewIntent()方法

3、独享任务栈(SingleTask)
     如果任务栈存在这样的实例,它会把该实例上面的所有的activity移除,在重
      用该实例。比如oneActivity(1)创建(这里使用1和2标记只为说明),点击
     进入twoActivity(1),在点oneActivity(2),在点击twoActivity(2),这时

     twoActivity(2)不会创建,会重用twoActivity(1),并且oneActivity(2)
     会被移除,这时栈中只有oneActivity(1)和twoActivity(1),

4、单实例任务栈(SingleIntance)
    创建一个单独的任务栈,该任务栈里面只会有一个实例
    比如oneActivity创建,点击进入twoActivity,这时内存会开辟任务栈存放
    twoActivity,在点击oneActivity,在点击twoActivity,这时的twoActivity
    不会创建,会指向之前的twoActivity,相当于重用了

四种模式的运用场景
   1、Standard  很常见
   2、SingleTop 浏览器的书签,重用了activity,节约内存空间,方便于用户操作
   3、SingleTask 浏览器的界面
   4、SingleIntance 通话界面,必须保证不管哪里激活都是同一个界面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值