Android基础知识:Activity(4)启动模式

废话

本文我们来学习Activity的四种启动模式

  • standard
  • singleTop
  • singleTask
  • singleInstance

返回栈(BackStack)

在开始之前我们先要了解一个概念,返回栈

栈(stack)又名堆栈
特性:先进后出,后进先出

每个app都会有返回栈,返回栈里面存放的是Activity

为什么叫返回栈,因为在启动Activity和点击Back键就是进栈和出栈的操作

我们启动一个新的Activity就会把旧的Activity覆盖掉,此时新的Activity就是进栈

接着我们点击Back键,Activity就会被销毁,此时Activity就出栈了

standard

这个是Activity的默认启动模式,我们通过Intent每启动一次Activity,就会创建一个新的实例


singleTop

打开app看到的界面就是栈顶页面,singleTop的启动模式是每次启动一次Activity,系统就会检查启动Activity是否在栈顶,如果在栈顶的话就不创建新的实例,如果不在的话就创建新的实例


singleTask

singleTask模式的Activity在启动时,系统会检查一遍此Activity是否已经在栈内了,如果在的话就不创建新实例,如果不在就创建一个新的实例


singleInstance

这个启动模式比较少用,一般来说,一个普通的app,返回栈就一个,如果你设置了singleInstance的启动模式,那么系统会创建一个新的返回栈给此Activity用

A、B、C三个Activity,A和C是standard启动模式,B是singleInstance启动模式,A和B都有一个按钮,分别是启动B和启动C

此时的调用顺序:A -> B -> C
然后你按返回键,你会发现C直接回到A,然后再按一次返回键才回到B,这时因为A和C是在同一个返回栈内,而B在另一个返回栈,所以C先是回到A,此时A和C所在的返回栈已经没有Activity了,系统才会去其他返回栈


以上就是Activity的四种启动模式

你可能感兴趣的:(Android基础知识:Activity(4)启动模式)