Activity

Activity的四种launchMode

launchMode在多个Activity跳转的过程中起到决定是生成新的还是重用已有的Activity实例,是否和其它Activity实例共存于一个task。
task是一个栈结构,一个task可以管理多个Activity,启动一个应用也就创建了一个与之对应的task。
Activity有以下四种launchMode:

  • standard
  • singleTop
  • singleTask
  • singleInstance

standard模式

standard是默认的启动模式

<activity android:launchMode="standard">

每次跳转到这个Activity都会生成一个新的实例,并且放于Task栈顶。

singleTop模式

这个模式的要点是看栈顶

<activity android:launchMode="singleTop">

跳转到这个Activity前,会判断位于当前Task栈顶的Activity是否是它的实例,如果是则直接使用这个实例;如果不是,则生成一个新的实例,并且放于Task栈顶。

singleTask模式

这个模式要点是看整个栈,且会有退栈操作。

<activity android:launchMode="singleTask">

跳转到这个Activity前,会判断当前Task中是否已存在它的实例,如果已存在,则把这个实例之上的其它Activity实例退出栈,使它成为栈顶实例;如果没有,则生成一个新的实例,并且放于Task栈顶。

 

发表评论