Activity 的启动模式 launchmode 探索

2017-07-13  本文已影响17人  学点东西吧6

前言

Activity 的 launchmode 应该算是基础中的基础了,分为四种:standardsingleTopsingleTasksingleInstance
但是在初学阶段一直没有很好的理解其中的区别,现在回过头来结合代码打印的日志总结一下,记录下来。

standard

singleTop

singleTask

  1. 如果在清单文件 AndroidManifest.xml 中没有定义 taskAffinity 属性:
  1. 如果在清单文件 AndroidManifest.xml 中定义了 taskAffinity 属性:

singleInstance

  1. 每调用一次 startActivity(intent),如果新的任务栈不存在,则会创建一个新的任务栈并例化一个新的 activity 对象;
  1. 如果在新的任务栈中再跳转到另一个 singleInstance 模式的 Activity 中,则又会创建一个新的任务栈;
  2. 也就是说每一个singleInstance 模式的 Activity 都会拥有一个单独的任务栈,且任务栈中只有自己一个实例。

测试代码

LaunchModeTest

上一篇 下一篇

猜你喜欢

热点阅读