activity的启动模式是Android的基础知识,这里就直入主题了。
Activity启动模式
standard模式
standard是activity的默认启动模式,每次activity启动时,都会创建一个新的实例化对象。
ActivityA为standard模式

singleTop模式
在启动activity之前会检查栈顶activity是否为启动的activity实例对象,如果是那么触发activity的onNewIntent回调,不再创建新的实例。 否则和standard模式表现一样,会参加一个新的实例。
ActivityB为singleTop模式

singleTask模式
和singleTop的区别在与,启动activity之前不仅检查栈顶activity是否为启动的activity实例对象,而是检查整个堆栈中是否有该activity的实例对象。 如果有的话,会触发activity的onNewIntent回调并将该实例对象置于栈顶(将他之上的activity销毁)
ActivityC为singleTask模式

singleInstance模式
singleInstance和singleTask有很多相同的地方,singleInstance模式下的activity在堆栈中也只会有一个实例,并且task中只会有这个一个activity。
ActivityC为singleInstance模式

网友评论