Android活动启动模式简介

来源:互联网 发布:php默认编码方式 编辑:程序博客网 时间:2024/06/05 00:39

android活动的启动模式

Android一共有四种启动活动的方式,分别是standard、singlTop、singleTask、singleInstance,我们可以通过在主配置文件,也就是AndroidManifest.xml中在activity标签中指定android:launchMode属性来指定自己想要的启动模式

1.standard(标准模式)

这是默认的启动模式,也就是说即使你不对launchMode指定任何属性,系统会默认选择该属性来执行。我们知道android是通过返回栈来管理活动的,在standard模式下,每当我们启动一个新的活动后,他就会进入返回栈的栈顶位置,该模式下启动的活动,系统不会管这个活动在栈中是否存在,每次都会重新创建一个新活动的实例对象。
standard模式原理图

2.singleTop(栈顶模式)

当你指定launchMode为singleTop时,在启动新的活动的时候,系统会在栈中进行检查,如果发现该活动已经处于返回栈的栈顶位置,那么将不在创建新的活动实例,而是直接返回改活动实例。
singleTop原理示意图

3.singleTask(单栈模式)

当指定活动启动模式launchMode指定为singleTask时,每次启动新的活动的时候,系统首先回去检查栈中是否存在改活动的实例对象,如果有,不论改活动的实例对象处于栈中的任何位置,都会将它提到栈顶,并且将在栈中位置处于他上方的的所有活动对象出栈。如果没有发现该活动的实例对象,系统就会创建一个新的实例对象。
singleTask原理示意图

4.singleInstance

这种模式是最为特殊的一种模式,它特殊在哪里呢?它就特殊在 当你指定活动启动模式为singleInstance的时候,该活动会启用一个新的返回栈,来管理这个活动。那它到底有什么用呢?如果我们的某个活动可以被其他用用程序调用,即与其他程序共享该活动实例,使用前面三种方式是无法达到要求的,因为每个应用程序都有自己的栈,同一个活动在不同返回栈中入栈时候必然会创建新的实例对象。而该模式下就解决了这个问题,该模式下会有一个单独的返回栈来管理这个活动,不管哪个程序来访问这个活动,都将会公用一个返回栈。
singleInstance原理示意图

0 0
原创粉丝点击