简要说明Activity的启动模式

standard:默认模式

当通过这种模式来启动Activity时,Activity会创建一个新的实例并加入当前Task栈中。如多次使用该模式启动同一个Activity,那么Task栈中会有多个Activity实例。

singleTop:Task栈顶单例模式

当通过这种模式来启动Activity时,如果发现有对应的Activity实例正位于栈顶,则重复利用,不再生成新的实例。
如果在对应的Task栈中有对应的Activity实例,但不在Task栈顶,那么就会生成一个新的Activity实例,并置于ask栈顶。

singleTask: Task内单例模式

当通过这种模式来启动Activity时,

*1.如果将要启动的Activity不存在,那么系统将会创建该实例,并将其加入Task栈顶

*2.如果将要启动的Activity已存在,且存在栈顶,那么此时不会创建新的实例,Task栈也不会改变。

*3.如果将要启动的Activity存在但是没有位于Task栈顶,那么将会把Task栈中置于该Activity的以上的其他实例全部从Task栈中移除,从而使得该Activity位于Task栈顶。

singleInstance: 全局单例模式

当通过这种模式来启动Activity时,无论从哪个Task中启动目标Activity,只会创建一个目标Activity实例且会用一个全新的Task栈来装载该Activity实例.

*1.如果将要启动的Activity不存在,那么会先创建一个新的Task栈,再创建一个该Activity的实例,并置于Task栈顶。

*2.如果将要启动的Activity已存在,那么无论它位于哪个应用程序,哪个Task栈中,都会把该Activity所在的Task栈切换到前台,从而使该Activity显示出来。

你可能感兴趣的:(简要说明Activity的启动模式)