Activity 的四种启动模式

Android 的启动模式有四种,分别是:standard、singleTop、singleTask、singleInstance。

可以在 AndroidManifest.xml 中的 activity 声明中添加如下代码设置启动模式:

android:launchMode="singleTop"
  • standard(默认)

每当启动一个新的活动,他就会再返回栈中入栈,并处于栈顶地位置。对于使用 standard 模式的活动,系统不会在乎这个活动的是否已经在返回栈中存在,每次启动都会创建该活动的一个新的实例。

  • singleTop

当活动的启动模式指定为 singleTop ,在启动活动时发现返回栈的栈顶已经是该活动,则认为可以直接使用它,不会再创建新的活动实例。

  • singleTask

当活动的启动模式指定为 singleTask ,每次启动该活动时系统首先会在返回栈中检查是否存在该活动实例,如果发现已经存在则直接使用该实例,并把在这个活动之上的所有活动统统出栈,如果没有发现就会创建一个新的活动实例。

  • singleInstance

指定为 singleInstance 模式的活动会启用一个新的返回栈来管理这个活动(其实如果 singleTask 模式指定了不同的 taskAffinity,也会启动一个新的返回栈)。

这种模式下,一个单独的返回栈管理一个单独的活动,不管哪个应用程序来访问这个活动,都是共用同一个返回栈,这样就可以解决不同应用程序之间共享活动实例的问题。

猜你喜欢

转载自blog.csdn.net/baidu_33221362/article/details/80989668