Android的Activity有四种启动模式(Launch Mode):standard、singleTop、singleTask和singleInstance。
standard模式:标准的Activity启动模式,也是默认的启动模式,如果一个activity已经存在task栈中,跳转到该activity时,会再次创建一个新的实例压入task栈中。例如栈中有a b c d,跳转到d时,会新建一个d,此时task顺序为a b c d d,如果再跳转到b,那么此时顺序为a b c d d b。
singleTop模式:栈顶模式,如果一个activity位于栈顶时,跳转到该activity时,将不会创建新的实例。例如a b c d ,此时d位于栈顶,跳转到d时,task栈中还是a b c d,而如果跳转到b,不位于栈顶,则会再次创建b,顺序为 a b c d b。
singleTask模式:单任务模式,任务栈中只会有一个该activity实例。例如a b c d,如果从d跳转到b,那么栈顺序为a b,
此时发生弹栈,c,d被弹出栈销毁,b位于栈顶,b之上的activity都会被销毁。
singleInstance:相当于新建一个任务栈。例如,栈1有a b c d ,如果从d跳转到e,那么e位于新建的栈2中,此时栈1:a b c d,栈2:e , 再从e跳到e,栈2不会新建实例,依然只有一个e,如果从e跳转到d,那么栈1的栈序为a b c d d ,因为d的模式为standard。
新闻热点
疑难解答