活动 launchMode

启动模式定义任务中新活动或现有活动的行为。
有可能的启动模式:

  • 标准
  • singleTop
  • singleTask
  • singleInstance

它应该在 <activity/> 元素的 android manifest 中定义为 android:launchMode 属性。

<activity
    android:launchMode=["standard" | "singleTop" | "singleTask" | "singleInstance"] />

标准:

默认值。如果设置此模式,将始终为每个新意图创建新活动。因此,可以获得相同类型的许多活动。新活动将放在任务的顶部。不同的 Android 版本有一些区别:如果活动是从另一个应用程序开始,则在 orroids <= 4.4 上它将被置于与启动器应用程序相同的任务上,但是在> = 5.0 时将创建新任务。

SingleTop:

此模式与 standard 几乎相同。可以创建许多 singleTop 活动的实例。不同之处在于,如果活动实例已经存在于当前堆栈的顶部,则将调用 onNewIntent() 而不是创建新实例。

SingleTask:

使用此启动模式的活动只能在系统中有一个实例。如果活动不存在,将创建活动的新任务。否则,具有活动的任务将被移动到前面并且将调用 onNewIntent

SingleInstance:

此模式类似于 singleTask。不同之处在于,使用 singleInstance 进行活动的任务只能进行此活动,仅此而已。当 singleInstance 活动创建另一个活动时,将创建新任务以放置该活动。