launchMode之的几种取值

Activity的launchMode


launchMode之standard
  ·标准模式,每次激活Activity时均在当前任务栈中创建新的实例。


在配置文件中把activity节点的属性配置为  android:launchMode="standard" (可以不用配置,因为默认是standard)
标准模式特性:
每次激活Activity,
taskid相同(即:表示每次激活Activity,是同一个任务栈,每次点击回退会按照后进先出的顺序出栈)
hashcode每次都不同(表示每次激活一次Activity都会创建一个新的实例)


launchMode之singleTop
    ·singleTop
    ·位于栈顶时唯一,如果当前Activity已位于当前任务栈的栈顶,则再次激活该Activity也不会创建新的实例


launchMode之singleTask
·singleTask
(1)独立于任务栈,如果该singleTaskActivity的实例不存在,则激活时会创建并获得栈顶位置。
(2)如果singleTaskActivity的实例已经存在,激活时不会创建新的singTaskActivity实例,且原来已经存在的singTaskActivity上方的Activity均出栈,原来的这个singTaskActivity获得栈顶位置。


一句话就是:singTaskActivity要么不存在要么只有一个实例,激活时,肯定在栈顶位置,前面若有Activity时会被“挤”出站(被销毁)


launchMode之singleInstance(单例的)
·singleInstance
·实例唯一,无论哪个Task,共享同一个Activity的实例。
·该Activity有独立的Task(独占一个Task),且在Task中唯一,由该Activity激活的其它Activity归属于其它Task


singleInstance与taskAffinity


由被配置为singleInstance的Activity激活的其它Activity,会尝试放在
存在“亲属”关系的Task中,如果没有匹配的Task存在,则会创建新的Task存放被激活的Activity。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值