安卓启动activity的时候,系统会将activity的实例存储在一个后进先出的栈里面,为了提高activity的管理和运行效率,安卓提供了四种activity的启动模式,对应四种不同的activity实例栈的管理策略。
在Android manifest文件中可以为activity节点的launchMode属性配置这四种模式:
standard:每次启动activity就将这个activity的实例往栈里面存放。
singleTop:如果栈顶(即界面显示的activity)是该activity,则不创建该activity实例,复用栈顶的就行。
singleTask:如果栈里面已有该activity的实例,则将这个activity实例之上的activity销毁,并复用。
singleInstance:开启的时候会将该activity的实例另存到一个单独的栈,并把这个栈放到前面(即显示到界面)。当运行别的activity时,则把其它的栈放到前面。再次启动该activity时不会创建实例,而是复用之前的并把它所在的那个栈放到前面。