Activity的4种启动模式

Activity的启动模式有4种,分别是standard,singleTop,SingleTask.,singleInstance,可以在AndroidMainifest.xml文件中指定每一个Activity的启动模式。

android:launchMode="standard",android:launchMode="singleTop",

android:launchMode="SingleTask",android:launchMode="singleInstance"

一个Android应用一般都会有多个Activity,系统会通过任务栈来管理这些Activity,栈是一种后进先出的集合,当前的Activity就在栈顶,按返回键,栈顶Activity就会退出。Activity启动模式不同,系统通过任务栈管理Activity的方式也会不同。

1,standard常用的启动方式,只要启动此activity就会新创建一个activity,无论栈中是否存在,都会创建一个activity

2,singleTop,当一个singleTop模式的Activity已经位于任务栈的栈顶,再去启动它时,不会再创建新的实例,如果不位于栈顶,就会创建新的实例。我们创建3个activity。1启动2,2在启动3。

此时,1在最栈底,2其次,3在栈顶。此时3启动3时,由于3在栈顶,则复用3,如图:

如果3启动1时,此时会出现4个activity,栈顶的是1,一次是3,2,1,按返回键的时候,可以看见1销毁了2次,证明了确实没有复用1,而是创建了新的1.如图:

3,SingleTask,如果Activity已经位于栈顶,系统不会创建新的Activity实例,和singleTop模式一样,如果不位于栈顶时,系统就会把该Activity移到栈顶,并把它上面的activity出栈。

我们依次创建3个activity,1在最栈底,2其次,3在栈顶。此时3启动3时,由于3在栈顶,则复用3

如果3启动1时,1不在栈顶,但是存在,则复用1,但是2和3就会被销毁。

4,singleInstance:是单例的,但和singleTask不同,singleTask只是任务栈内单例,系统里是可以有多个singleTask Activity实例的,而singleInstance Activity在整个系统里只有一个实例,启动一singleInstanceActivity时,系统会创建一个新的任务栈,并且这个任务栈只有他一个Activity。但是此方式不常用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值