Android 启动状态
2017-02-23 本文已影响5人
jnxc1888
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号栈。