Activity启动模式
2018-03-23 本文已影响0人
果果人8023
启动模式
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 页面