Activity的四种启动模式

Activity的启动模式

Activity的启动该模式一共有四个,分别是standard、singleTop、singleTask、singleInstance。可以在AndroidManifest.xml中通过标签指定android:launchMode属性来启动模式。

standard

这个是Activity默认的启动方式。

在这个模式下模式下,每当启动一个新的活动,他就会在返回栈中入栈,并且处于栈顶的位置。

对于这种模式下,系统不在乎这个Activity是否在返回栈中已经存在了,每次启动都会创建这个Activity的一个新实例。即使这个Activity放在返回栈的栈顶,他依然会重新创建这个新的实例。

singleTop

在这个启动模式下,当启动的Activity为返回栈的最顶上的Activity时,此时不会再启动新的Activity实例,而是直接用回。

singleTask

在这个模式下,每次启动一个Activity时,系统会在返回栈中检查是否已经存在了这个Activity实例。如果不存在那么就会直接打开;如果已经存在了,那么就会把在这个Activity以上的全部别的Activity全部的出栈,最后显示所要启动的Activity。

singleInstance

在这个模式下,Activity会启动一个新的返回栈来管理这个活动。

假如我们的程序中有一个Activity是允许其他程序调用的,如果我们想要实现其他程序和我们的程序共享这个Activity的实例时,使用前三种启动模式肯定是做不到了。因为每个应用程序都会有自己的返回栈,同一个Activity在不同的返回栈入栈的时候必定会创建一个新的实例。而使用singleInstance这种模式下,会用一个单独的返回栈来管理这个活动,不管是哪个应用程序来访问这个Activity,都共同的使用这个返回栈,也解决了共享活动实例的问题。

posted @ 2017-01-09 23:09  吃枣的事  阅读(200)  评论(0编辑  收藏  举报