活动 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
活动创建另一个活动时,将创建新任务以放置该活动。