singleTask 和singleInstance差异



singleTop栈顶复用模式 只有在栈顶才复用否则重建


singleTask 栈内复用模式


singleInstance 单实例模式 ,可认为是加强版的singleTask,不同之处是次模式下的Activity只能单独的位于一个任务栈中 


TaskAffinity 是设置任务栈的属性,默认包名



        1. 设置了"singleTask"启动模式的Activity,它在启动的时候,会先在系统中查找属性值affinity等于它的属性值taskAffinity的任务存在;如果存在这样的任务,它就会在这个任务中启动,否则就会在新任务中启动。因此,如果我们想要设置了"singleTask"启动模式的Activity在新的任务中启动,就要为它设置一个独立的taskAffinity属性值。

        2. 如果设置了"singleTask"启动模式的Activity不是在新的任务中启动时,它会在已有的任务中查看是否已经存在相应的Activity实例,如果存在,就会把位于这个Activity实例上面的Activity全部结束掉,即最终这个Activity实例会位于任务的堆栈顶端中。


简单来说就是 singleTask 指定了单独的任务栈则在任务栈中启动,如果没有单独设置任务栈,则在当前任务栈显示,并且如果不在当前栈顶的话,会销毁此acivity所在栈之前的activity  栈顶显示

 singleInstance这种启动模式比较特殊,因为它会启用一个新的栈结构,将Acitvity放置于这个新的栈结构中,并保证不再有其他Activity实例进入。 

http://blog.csdn.net/luoshengyang/article/details/6714543 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值