在Android里,有4种Activity的启动模式并分别介绍下:

  1. standard
  2. singleTop
  3. singleTask
  4. singleInstance

AndroidManifest.xml配置android:launchMode属性

1.standard:

  默认启动模式.

  每次都会创建一个实例,每个任务栈里面都可以使用。


2.singleTop:

  系统会按照singleTop启动模式处理跳转行为.跳转时系统会先在栈结构寻找是否有一个Activity实例正位于栈顶,如果有则不在生成新的,而是直接使用。如果系统发现存在有Activity实例,但不是位于栈顶,重新生成一个实例.

  singleTop启动模式就是这样,如果发现对应的Activity实例正处于栈顶,反复创建也就只能创建一个实例(反复利用不生成新的实例).反之,此时不处于栈顶就创建新的实例。


3.singleTask:

  如果发现有对应的Acitivty实例,则使此Activity实例之上的Activity实例统统退出栈,使此Acitivity实例成为栈顶对象,显示到屏幕前。


4.singleInstance:

  这钟启动模式比较特殊,因为它会启用一个新的栈结构,将Activity放置于新的栈结构中,并保证不再有其他Activity实例进入.

  只存在一个独立的任务栈里面,一个任务栈就只包括它一个。


1.文字表述比较抽象,画图演示可好?

  singleTop

  Android启动模式launchMode-LMLPHP    


  singleTask

  Android启动模式launchMode-LMLPHP


  singleInstance

  Android启动模式launchMode-LMLPHP

2.这些启动模式在哪里地方能用到呢?

3.启动模式背后的秘密?

05-07 15:37