Activity Stack

1. 默认启动模式:  不考虑task

2.singleTop: 如果在task顶,则不启动。

3.singleTask: 只属于一个task。如果对对应task存在,则直接启动到对应的task中,不会启动新的task作为root。并且,若启动的时候,发现task中已经有此activity,就会弹出所有top.

4.singleInstance:只属于一个task, 并且此task中只有一个activity.

 

关于FLAG_ACTIVITY_NEW_TASK:

1. Activity是否能够作为新的task的来启动的一个标记。具体是否作为新的task启动主要取决于taskAffinity对应的task是否存在,如果已存在,则不启动新的task,如果不存在,则启动新的task。

2. 如果启动新的task,则一定会启动此activity

3. 如果不启动新的task,是否启动Activity取决于以这个Activity作为task标记的task是否存在。

如果存在,则不启动activity,否则启动activity。

4. 如果不启动新的task,但是启动了FLAG_ACTIVITY_NEW_TASK对应的activity,此activity一旦切换为root,那么此activity 就会标记一个新的task。

 

所以FLAG_ACTIVITY_NEW_TASK 是一个“必要时以此activity建立task的标记”, 而不是“以此activity建立task的标记”。

你可能感兴趣的:(Activity)