设置启动模式的方式:
<activity android:name="Demo" android:launchMode="启动模式"></activity>
1、standard :默认情况下,每次,被启动Activity都是一个新的实例,并被压入栈顶。
比如A通过standard启动B,则A与B在同一个栈中。
2、singleTop:如果被启动的Activity已存在栈顶,则不重新创建该Activity,而是直接使用。如果被启动的Activity不存在栈顶,则重新创建,这样作用和standard一样。
比如A通过singleTop启动自己,当前A在栈顶,所以不会重新创建对象并压入栈中,这样在栈中只有一个实例,就是他自己,不管启动多少次。
3、singleTask:如果被启动的Activity在栈中存在(不管是否存在与栈顶,这是与singleTop的区别),都不会重新创建被启动Activity的实例,直接使用,如果这个Activity头上还有其他Activity,这些其他Activity将被弹出,直到此Activity被置于栈顶。如果被启动的Activity不存在栈中,则重新创建一个Task并重新创建一个Activity放入新的栈低,方便其他程序对其共享。
4、singleInstance:A程序通过此模式启动的Activity将被放置在一个独立的(新的)Task中,当其他程序也去调用此Activity时,不会在对此Activity再重新创建,前提是A程序没有退出。A程序和其他程序用的是同一个Activity实例。