启动模式一共有四种,分别是 standard、singleTop、

singleTask 和 singleInstance,可以在 AndroidManifest.xml 中通过给<activity>标签指定

android:launchMode属性来选择启动模式,如

android:launchMode="standart"
android:launchMode="singleTop"
android:launchMode="singleTask"
android:launchMode="singleInstance"


standard:对于使用standard 模式的活动,系统不会在乎这个活动是否已经在返回栈中存在,每次启动都会创建该活动的一个新的实例。默认情况下都是这个模式,所以没有明确指定的情况下也都是这个模式。

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

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

singleInstance:指定为 singleInstance 模式的活动会启用一个新的返回栈来管理这个活动,不管是哪个应用程序来访问这个活动,都共用的同一个返回栈,也就解决了共享活动实例的问题


参考《第一行代码-android》