1、Standard
Standard模式没什么好说的,每次启动都会在当前Activity所在task内新建一个新的Activity实例,特殊情况是当前Activity的启动模式为SingleInstance,具体见下文。
2、SingleInstance
SingleInstance模式下,不但Activity是单例的,连他所处的task也是单独的,即它独占一个task,如果在该Activity未销毁时二次启动该Activity也只是重新调用该Activity,只会回调onNewIntent方法,而不会回调onCreate方法
PS:如果这时候从SingleInstance Activity再启动一个Standard Activity,该Activity也是隶属于默认的task(如下图的task 7424),而不是SingleInstance Activity所属的task(如下图的task 7425)
3、SingleTop
该模式区别于Standard模式的仅仅在于当SingleTop Activity位于Task顶部时,再次启动不会重新创建,而只是回调顶部SingleTop Activity的 onNewIntent 方法,而如果SingleTop Activity不在task顶部,它的行为模式则等同于Standard
4、SingleTask
该模式根据manifest内是否设置了taskAffinity属性而有所区别,如果设置了该属性,则SingleTask Activity会在一个新的task内启动,而如果未设置,则会在默认task内启动
如果尝试重新启动一个已存在的SingleTask Activity,它会将它所在task上方的所有activity都清除,且仅回调onNewIntent 方法。