Activity的启动模式

来源:互联网 发布:mac是什么意思啊 编辑:程序博客网 时间:2024/06/03 18:54

Android中Activity是以栈的方式存放的。

Activity的启动模式有四种:
1.standard:标准模式,每次启动都会创建Activity对象。栈的分配情况,由启动它的Activity栈决定。
2.singTop:栈顶时唯一,此种模式的Activity当位于栈顶时启动时不会创建新对象,而是直接从栈中调出显示。栈的分配情况,由启动它的Activity栈决定。
3.singTask:单实例模式,此种模式的Activity一旦创建了对象,下次启动时不会再创建对象,而是直接从栈中调出显示,调出显示时位于其上的Activity都会出栈。栈分配取决于taskAffinity的值,后面介绍。
4.singleInstance:实例唯一,单独开辟一个新栈,并且独占一个栈。

taskAffinity
此属性配置会影响singTask模式的Activity的栈的分配。
taskAffinity默认情况下和当前应用的包名相同,taskAffinity属性指定了要存放Activity的是哪一站

第一种情况:从当前应用中启动
手动为singTask模式的Activity配置了taskAffinity属性值,当我们从当前应用中某个Activity(此属性的taskAffinity为默认)启动此Activity时,由于taskAffinity值不一致,所以会新建一个新栈存放此Activity,新栈名为配置的taskAffinity值
方式一:
在清单文件activity标签中通过属性launchMode设置,launchMode有四个值分别为:standard,singleTop,singleTask,singleInstance

0 0
原创粉丝点击