1.standard
新建启动,每次启动都会在栈顶新建要启动的Activity,即使栈顶已经是该Activity
2.singleTop
android:launchMode="singleTop"
启动时如果发现栈顶是该活动,则可以直接使用它,不会像standard一样再创建新的活动实例,但是需要启动的Activity存在却没有在栈顶,但仍然会新建一个实例
3.singleTask
android:launchMode="singleTask"
每次启动前先检查,检查结果如果存在,则抛出该Activity顶端的所有,如果没有,则新建一个Activity实例
4.singleInstance
使用该方法会启用一个新的返回栈来管理这个活动(如果singleTask指定了不同的taskAffinity,也会启动一个新的返回栈),有点复杂,具体再看看再做解释