Activity启动模式

启动模式

Activity启动模式_第1张图片
image

a、Standard模式

  • 特点:创建一个栈内就新加一个

  • 描述

    Standard是Activity 默认启动模式,每次启动一个Activity都会重新创建一个新的Activity加入栈中
    
  • 举例

栈内初始顺序
  C 页面(顶)
  B 页面
  A 页面
C页面内点击跳转至C页面
  C 页面(顶)
  C 页面
  B 页面
  A 页面

b、SingleTop模式

  • 特点:同类型时栈顶复用,不同类型时按照Standard模式

  • 描述

     SingleTop模式存在两种情况:
     1,当需要创建的Activity已经处于栈顶时(例如C页面跳转至C页面),此时不会再重新创建,而是直接服用栈顶的Activity
     2,当需要创建的Activity不是处于栈顶时,此时会跟Standard模式一样,新创建一个Activity放至到栈顶
    
  • 举例1

栈内初始顺序
  C 页面(顶)
  B 页面
  A 页面
C页面内点击跳转至C页面
  C 页面(顶)
  B 页面
  A 页面
  • 举例2

栈内初始顺序
  C 页面(顶)
  B 页面
  A 页面
C页面内点击跳转至A页面
  A 页面(顶)
  C 页面
  B 页面
  A 页面

c、SingleTask模式

  • 特点:同类型的在栈内只有一个

  • 描述

     SingleTask模式存在两种情况:
     1,当需要创建的A Activity不存在时,此时会跟Standard模式一样,新创建一个Activity放至到栈顶
     2,当需要创建的A Activity已经存在,此时处于此A Activity栈顶所有的Activity都会被移出栈(finish),需要创建的Activity同名的A Activity处于栈顶(Activity不会重新创建)
    
  • 举例

栈内初始顺序,A页面启动模式为SingleTask
  C 页面(顶)
  B 页面
  A 页面
C页面内点击跳转至A页面,B、C页面被移除
  A 页面(顶)

d、SingleInstance模式

  • 特点:具有所有SingleTask特性,并且会独立一个Task(一个栈内可以有多个Task)

  • 描述

  • 举例

栈内初始顺序,C页面启动模式为SingleInstance
  B 页面(顶)
  A 页面
B页面内点击跳转至C页面,开启两个Task
  Task1                          Task2
  B 页面(顶)                     C 页面(顶)
  A 页面

你可能感兴趣的:(Activity启动模式)