Android Activity的四种加载模式

配置Android时可指定android:launchMode属性,该属性支持如下四个属性值:

(1)standard:标准模式(若不指定,则该模式为默认加载模式);

(2)singleTop:Task栈顶单例模式;

(3)singleTask:Task内单例模式;

(4)singleInstance:全局单例模式。

下面详细介绍一下这四种加载模式。

1.standard模式

(1)每次通过这种模式来启动目标Activity时,Android总会为目标Activity创建一个新的实例,并将该Activity添加到当前Task栈中;

(2)这种模式不会启动创建新的Task,新Activity将会被添加到原有的Task中;

(3)若Activity已经存在,也会创建一个相同的Activity(不同Activity实例的hashCode值由于差异)加入栈顶。

2.singleTop模式

(1)当要启动的目标Activity已经位于Task栈顶时,系统不会创建目标Activity的实例,而是直接复用已有的Activity实例;

(2)当要启动的目标Activity没有位于Task栈顶时,系统会重新创建目标Activity的实例(哪怕已经存在),并将它加载到Task栈顶,此时与standard模式完全相同。

3.singleTa模式

(1)如果要启动的目标Activity不存在,系统将会创建目标Activity的实例,并将它加入Task栈顶;

(2)当要启动的目标Activity已经位于Task栈顶时,系统会复用已存在的Activity实例(与singTop相同);

(3)当要启动的目标Activity已经存在,但是没有位于Task栈顶时,系统会把位于该Activity上面所有的Activity移出Task栈,从而使得目标Activity转入栈顶。

4.singleInstan模式

(1)如果要启动的目标Activity不存在,系统会先创建一个全新的Task栈,再创建目标Activity的实例,并将它加入新的Task栈顶;

(2)当要启动的目标Activity已经存在,无论它位于哪个应用程序中、位于哪个Task中,系统都会把该Activity所在的Task转到前台,从而使该Activity显示出来;

(3)采用该模式加载的Activity总是位于Task栈顶且所在Task将只包含该Activity(因为自己单独用一个Task栈)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值