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显示出来。