当启动的activity以及位于栈顶时,则直接使用它不创建新的实例,同时它的onNewIntent方法会被回调,通过此方法的参数我们可以去除当前请求的信息,这个activity的onCreate、onStart不会被系统调用,因为它并没有发生改变。如果启动的activity没有位于栈顶时,则创建一个新的实例位于栈顶
举个例子,假设目前栈内的情况为ABCD,其中ABCD为四个Activity, A位于栈底,D位于栈顶,这个时候假设要再次启动D,如果D的启动模式为singleTop,那么栈内的情况仍然为ABCD;
如果D的启动模式为standard,那么由于D被重新创建,导致栈内的情况就变为ABCDD。
实例:
这个是mainActivity
BActivity
运行结果
启动mainActivity时,只有一个实例