standard (同一个栈创建一个新的,除非FLAG_ACTIVITY_NEW_TASK+taskAffinity)每次都会创建,每个Task都可以有,且每个Task都可以有多个实例(每个Task都可以有,且可以有多个) ,和启动它的源Activity同task(没有加FLAG_ACTIVITY_NEW_TASK)
singleTop (同一个栈栈顶一个,除非FLAG_ACTIVITY_NEW_TASK+taskAffinity)当前实例如果在栈顶,就不新建实例,调用其OnNewIntent。 如不在栈顶,则新建实例 (每个Task都可以有,且可以有多个,在栈顶时可复用)和启动它的源Activity同task
singleTask (指定栈成为栈顶,除非FLAG_ACTIVITY_NEW_TASK+taskAffinity)新建一个Task,如果已经有其他的Task并且包含该实例,那就直接调用那个Task的实例。(只有一个Task中会有)
singleInstance (新栈(保持)唯一 只有一个Task只有唯一一个Activity)新建一个Task,且在该Task中只有它的唯一一个实例。 (只有一个Task会有,且该Task中只有它)
singleTop (同一个栈栈顶一个,除非FLAG_ACTIVITY_NEW_TASK+taskAffinity)当前实例如果在栈顶,就不新建实例,调用其OnNewIntent。 如不在栈顶,则新建实例 (每个Task都可以有,且可以有多个,在栈顶时可复用)和启动它的源Activity同task
singleTask (指定栈成为栈顶,除非FLAG_ACTIVITY_NEW_TASK+taskAffinity)新建一个Task,如果已经有其他的Task并且包含该实例,那就直接调用那个Task的实例。(只有一个Task中会有)
singleInstance (新栈(保持)唯一 只有一个Task只有唯一一个Activity)新建一个Task,且在该Task中只有它的唯一一个实例。 (只有一个Task会有,且该Task中只有它)
Flag优先级高于launchMode(目标Activity的launchMode或者Intent的Flag)
http://www.cnblogs.com/wmlhj666/archive/2012/11/06.html
http://hubingforever.blog.163.com/blog/static/17104057920101194575866/
本文详细解析了Android中Activity的四种启动模式:standard、singleTop、singleTask与singleInstance,并阐述了FLAG如何影响这些模式。此外,还介绍了不同启动模式下Activity的行为差异。
1269

被折叠的 条评论
为什么被折叠?



