Activity 启动模式 分析

谈一下我对Acitivity启动模式的理解。

启动模式有如下4种:

standard,singleTop,singleTask,singleInstance。


1.standard

标准模式,也是默认模式,每次启动一个Activity,都会重新创建一个新实例;都会走onCreate(),onStart(),onResume()


2.singleTop 

栈顶复用模式,如果Activity已经在栈顶,则不创建新的Activity,栈顶Activity的onNewIntent()会被调用;如果栈顶不存在该Activity,则与standard模式是一样的。


standard和singleTop都是在原任务栈中新建Activity实例,不会启动新的Task,即使指定了taskAffinity属性。


taskAffinity:标识了activity所在的任务栈的名字,如果不指定taskAffinity,名字默认为app的包名;具有相同taskAffinity的Activity属于同一个任务。

需要注意的是taskAffinity对 standard和singleTop没有任何影响。


3. singleTask

栈内复用模式:如果任务栈中存在这个activity,则复用该activity,不管activity是否位于栈顶;复用时,会将该activity上面的activity全部出栈;并回调该ativity的onNewIntent();

activity启动的时候,会在对应的任务栈中进行匹配,如果任务栈不存在,则创建任务栈;任务栈就是根据taskAffinity进行配置的。


4.singleInstance

全局唯一模式:该模式与singleTask的特点一样;唯一区别就是,会单独占用一个任务栈,具有全局唯一性,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值