Activity创建完成后再AndroidManifest.xml中配置的时候,android:launchMode属性可以指定activity的启动模式,共有四种:
standard、singletop、singletask、singleinstance。
设置方式为: <activity android:name=".MainActivity" android:launchMode="模式类型" />
standard模式:(默认模式)
使用standard启动模式,每次激活activity时都会创建activity,并放入任务栈中。因此,在这种模式下,可以有多个相同的实例,也允许多个相同Activity叠加。
singletop模式:
如果在任务的栈顶正好存在改Activity的时候,启动相同的Activity(会调用实例的onNewIntent()),不会创建新的实例。其余情况都要创建Activity实例。
singletask模式:
如果要激活的那个Activity在任务栈中存在该实例,则不需要创建,只需要把此Activity放入栈顶,并把该Activity以上的Activity实例都pop;
singleinstance模式:
在一个新栈中创建该Activity实例,并让多个应用共享改栈中的该Activity实例。一旦改模式的Activity的实例存在于某个栈中,任何应用再激活改Activity时都会重用该栈中的实例,其效果相当于多个应用程序共享一个应用,不管谁激活该Activity都会进入同一个应用中。