Android 启动状态

standard(默认)

只要启动activity就将它压入栈中

singleTop

如果当前启动的activity不在栈顶,则重新创建一个activity压入栈顶;
若当前activity在栈顶中已存在,则不重新创建,此时会调用activity的onNewIntent()方法

singleTask

栈中只能存在当前一个activity的实例。
如果当前的activity没有被处于栈中,则创建一个新的压入栈顶;
如果activity在栈中已存在,则会被移动至栈顶,并且在该activity之上的所有activity都会被移出,此时会调用activity的onNewIntent()方法

singleInstance

在另一个栈中创建该activity,其他应用程序可以共用该activity。当被创建之后再被调用会出发onNewInstance()方法。

注意它的销毁顺序
假设启动顺序是activityA -> activityB(singleInstance) ->activityC
销毁顺序为activityC -> activityA ->activityB(singleInstance)

activityA(假设为18号栈),那么,新启动的activityB可能是19号栈(不同的栈),再从activityB启动activityC,activityC被压回18号栈。

你可能感兴趣的:(Android 启动状态)