Activity启动模式:
启动模式就是在main.xml中设置
android:launchMode=""
launchMode 分为四种:
1.standard:
这种最简单,也是默认的模式,最无脑堆栈的模式,可以重复启动多个相同的Activity,可以无限堆栈
2.singleTop:
这种稍微节省一点性能,如果当前Activity处于栈顶,那么再去启动该Activity则不会重新创建而引用之前的,并且会进入当前Activity的onNewIntent()方法,如果启动的Activity不处于栈顶则会重新创建。
3.singleTask
这种有特殊业务的可以使用,这种模式如果启动的Activity处于栈顶则不会再堆栈,并且会进入当前Activity的onNewIntent()方法(这一点与singleTop相同),如果启动的Activity不处于栈顶则会引用之前的Activity并且关闭其他所有的Activity,并且会进入此Activity的onNewIntent()方法。
4singleInstance
这种也是比较特殊,设置这种模式后此Activity与之前的Activity不在同一个栈类,也就是是说跳到此Activity,如果之前没有跳转到次Activity则会新建一个栈去创建并启动此Activity,如果有则会把之前activity拿过来,并且会进入此Activity的onNewIntent()方法。但是当你返回的是他并不属于当前栈了,所以你是看不到他的。