Android基础——Activity的四种启动模式

来源:互联网 发布:linux热点连接ip查询 编辑:程序博客网 时间:2024/06/07 15:15

在Android中每一个Activity就是一个界面,几个界面的切换就是几个不同的Activity之间的实例化操作,那么启动模式就是决定Activity如何运行的。

接下来解释一下什么是任务栈,每个应用都有一个任务栈,用来存放Activity,每个Activity的出现顺序就会在任务栈当中体现,比如Activity1>Activity2>Activity3,那么在任务栈当中就是Activity1在底部,Activity2在中间,Activity3在顶部。

好了解释完任务栈后,讲一下四中模式怎么样设置

在AndroidManifest.xml中的标签的android:launchMode属性来设置
四种模式分别为standard、singleTop、singleTask、singleInstance

standard模式

standard模式是默认的启动方式,每次激活Activity(StartActivity)的时候都会创建Activity实例,然后放入任务栈中,系统不会在乎任务栈中是否已经存在该实例

singleTop模式

singleTop模式就是当你启动某个Activity时发现它已经在任务栈的栈顶,那么此时就不用再创建该Activity的实例了,直接使用栈顶的该实例。

singleTask模式

在singleTop中如果任务栈中已经存在了要打开的Activity的实例但是不是在栈顶,那么此时也是要重新创建该Activity的实例,就出现了重复的情况,那么singleTask模式就可以解决这种情况。singleTask模式就是当你要启动某个Activity的时候,首先检查下在任务栈中是否存在该实例,如果存在就直接拿来使用,并且在该Activity之上的全部Activity干掉,如果没有发现有该实例,则会创建一个新的Activity。

singleInstance模式

这个模式比较特殊,如果Activity设置为该启动模式,那么当Activity启动的时候会创建一个新的任务栈来存放该Activity的实例。启动一个新的任务栈是要让其他应用程序来共享该Activity。不管哪个应用程序想要访问该Activity,则不需要创建实例,直接共享此任务栈的实例。

0 0
原创粉丝点击