有关Activity之间的启动模式分为四种:standard、singleTop、singleTask、singleInstance。
standard:"标准启动模式",在大部分的Activity启动的时候都是使用该模式。每次启动的Activity都会依次的压入栈中。
singleTop:在启动新的Activity时,会自动判断栈顶是否是需要引用的Activity,如果是的话就会直接引用(但回调用方法onNewIntent(Intent intent));如果不是的话,就会在栈顶重新创建一个新的Activity。
singleTask:跟singleTop有一些区别,启动新的Activity的时候,会判断栈内是否有需要引用的Activity,如果有的话就将改Activity之上的其他Activity清除,保持在栈顶。例如:栈内有A启动B(B的启动方式是singleTask),B正常启动C,C正常启动D,现在栈内的排列顺序是A-B-C-D;现在D启动B,这时候的栈内排序:A-B。
singleInstance:当一个Activity的启动模式设置为singleInstance,会再次创建一个栈盛放这个新的Activity,而且该栈里面就有这一个Activity。