Android之Activity4种启动模式

1、在android的启动过程中有4种启动模式:

  1. standard
  2. singleTop
  3. singleTask
  4. singleInstance

2、4种启动模式主要有以下差别:

  • 如何决定所属的task: standard和singleTop一般和activity的目标task和收到intent的发送者在同一个task内; 而singletask和singleInstance作为task的根元素,他们不会被启动到其他的task里;
  • 是否允许多实例:standard和singleTop可以被实例化多次,并且可以存在于多个task中,同一个task中也可以存在多个standard和singleTop的实例;singleTop是如果activity实例在栈前已经存在,则intent将发送给该实例 ,而不是创建一个新的实例;
  • 是否独占task:singleInstance独立一个task,不允许其它activity在其task中,即使通过该activity创建了其它的activity实例,也是在其它task中创建;
  • 是否每次都生成一个新的实例 :standard模式时,每次都生成一个新的instance,而singleTop模式时,如果实例刚好在栈顶,则不生成新的实例;singleInstance模式,则它独占一个栈,每次都会被复用;而singleTask栈顶时,会接收发送的intent, 如果不在栈顶,则丢弃对应的intent,但singleTask仍然会回到前台;

3.Activity的生命周期

     Activity的生命周期有7个,oncreate-->onstart-->onrestart-->onresume-->onPause-->onStop-->onDestory;

     其中启动周期从onstart直到系统调用onstop;

     前台生命周期是从onResume直到系统调用onPause;

4.Android屏幕旋转的生命周期

  1. 当不设置activity的configchanges时,切屏会调用各个生命周期。其中切横屏调用1次,切竖屏调用2次;
  2. 当配置configchanges=”orientation“时,切屏会调用各个生命周期。但切横或竖屏时,只调用1次;
  3. 当配置configchanges="orientation|keyboardHidden"时,切屏不会重调用各生命周期,只会调用onconfigurationchanged方法;
  4.  

5.SingleTask与SingleInstance的区别

   singleTask可以与其它standard的共处一个 task中,使用相同的栈;并且从其它activity中唤醒singletask模式的activity时,它上面的所有activity全部出栈;
 singleInstance被其它standard模式启动时,不同standard模式的activity同处一个task,而是重新启动了一个新的task;
    

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值