Activity有四中启动模式,通过与Intent协同合作来达到想要的效果:
四中启动模式分别是:standard, singleTop, singleTask, singleInstance.
其中又可以分为两类:
“standard”和“singleTop”是一类:可以被实例化多次。这些实例可以属于任何task并可以位于activity栈的任何位置。
“singleTask”和“singleInstance”是一类:只能启动一个task。它们通常在activity栈的根(root)上,设备中同一时间只保持唯一的一个activity实例---只有一个这样的栈。
standard:每次激活Activity时(startActivity),都创建Activity实例,并放入任务栈;
singleTop:如果某个Activity自己激活自己,即任务栈栈顶就是该Activity,则不需要创建,其余情况都要创建Activity实例;
singleTask:如果要激活的那个Activity在任务栈中存在该实例,则不需要创建,只需要把此Activity放入栈顶,并把该Activity以上的Activity实例都pop;
singleInstance:如果应用1的任务栈中创建了MainActivity实例,如果应用2也要激活MainActivity,则不需要创建,两应用共享该Activity实例;