轻松理解Activity四种启动模式
2016-11-10 12:43
309 查看
Activity四种启动模式
一、启动模式介绍
启动模式简单地说就是Activity启动时的策略,在AndroidManifest.xml中的标签的android:launchMode属性设置;启动模式有4种,分别为standard、singleTop、singleTask、singleInstance;
二、分别详细介绍每种启动模式
standardstandard模式是默认的启动模式,不用为配置android:launchMode属性即可,当然也可以指定值为standard。standard模式所启动的Activity都是在同一个task容器栈下,不会重新创建新的task容器栈。先压入栈的Activity实例按顺序入栈底,后入栈在栈顶,处于栈的顶部Activity实例处于活动状态,其他处于非活动状态。按物理返回键,退出当前所处活动状态Activity窗口,这样就会从task容器栈中弹出,显示在手机主屏幕上,从而,由非活动状态转换成活动的状态。其次,standard容器栈可能会存在着相同的Activity实例,只要调用一次startActivity方法,就会创建目标Activity实例对象压入task容器栈。图解如下:
singleTop
AndroidManifest.xml文件中launchmode属性配置singletop,那么启动实例化Activity,如果task容器栈顶存在已经激活的Activity实例,就会重用当前栈顶的Activity实例,不会再重新去实例化Activity对象。善于思考的朋友可能会问,如果要启动的目标Activity已经有实例化对象存在task容器栈里面,只是现在不处于栈顶,这样情况下,singletop启动模式会创建目标Activity实例吗?答案是肯定的。要启动的目标Activity实例正好处于栈顶,才能重用该实例,其他情况必须创建新实例。图解如下:
singleTask
singletask模式,特别需要注意了。启动的目标Activity实例如果已经存在task容器栈中,不管当前实例处于栈的任何位置,是栈顶也好,栈底也好,还是处于栈中间,只要目标Activity实例处于task容器栈中,都可以重用该Activity实例对象,然后,把处于该Activity实例对象上面全部Activity实例清除掉,并且,task容器栈中永远只有唯一实例对象,不会存在两个相同的实例对象。所以,如果你想你的应用不管怎么启动目标Activity,都只有唯一一个实例对象,就使用这种启动模式。一般在实际开发的过程中,会把HomeActivity设置成为SingleTask,也就是所谓的回到首页,并且会在HomeAcitivity的onNewIntent方法中决定跳转哪个Fragement。图解如下:
singleInstance
singleInstance启动模式,简单说就是可以共享某个Activity。比如,应用1要启动Activity C,而应用2的任务容器栈中创建了Activity C实例
4000
,应用1则不需要创建Activity C实例,直接可以公用Activity C实例。图解如下:
三、总结
总之,Android四大启动模式相当简单。默认standard模式,他是task容器栈可能存在相同的Activity实例;singletop模式下,重用栈顶Activity实例,栈顶不存在,则创建新的Activity实例,该模式下有可能存在相同Activity实例;singletask模式,task容器栈存在目标Activity实例,则重用该实例,task容器栈永远只有唯一activity实例,并且,其一是Activity实例被清除掉。singleinstance模式,不同应用可以共享Activity实例,并且是处于不同容器栈中。而在实际开发中用的比较多的就是singletask。相关文章推荐
- 对activity的四种启动模式的理解
- 一句话_理解Activity四种启动模式
- 一句话_理解Activity四种启动模式
- Activity的四种启动模式简单理解
- 深刻理解activity启动模式,彻底理解android的四种启动模式,尤其singleTask
- Activity的四种启动模式的自己理解
- Activity四种启动模式的理解
- [原]深刻理解activity启动模式,彻底理解android的四种启动模式,尤其singleTask
- 简单理解Activity的四种启动模式
- Activity的四种启动模式和Task的理解
- Activity的四种启动模式
- Android中的Activity四种启动模式(launchMode)
- android activity 的四种启动模式
- 关于Activity启动模式的理解
- [android]区分Activity的四种启动模式---LaunchMode
- activity四种启动模式
- activity 的四种启动模式
- Activity四种启动模式:standard、singleTop、singleTask、singleInstance
- Activity四种启动模式
- Android入门:Activity四种启动模式