Activity的四种启动模式

Activity的启动模式

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

standard

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

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

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

1070494-20170109230658306-896578017.png

singleTop

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

1070494-20170109230715306-150269260.png

singleTask

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

1070494-20170109230741697-751008446.png

singleInstance

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

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

1070494-20170109230800244-1126353587.png

转载于:https://www.cnblogs.com/ZWRpoi/p/6266895.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值