四种清单中 launchMode(启动模式)解释

其实 Android 是使用任务(Task)来管理活动的,一个任务就是一组存放在栈里的活动
的集合,这个栈也被称作返回栈(Back Stack) 。栈是一种后进先出的数据结构,在默认情况
下,每当我们启动了一个新的活动,它会在返回栈中入栈,并处于栈顶的位置。

1、android:launchMode=”standard”
标准启动模式。这种启动模式也是Activity默认的,一个栈中可以有多个相同的Activity。不会考虑是否栈中是否有相同的Activity。比如设置A为standard模式,那么可以运行A-B-A-A-A;

2、android:launchMode=”singleTop”
单一栈顶启动模式,栈顶只能存在一个相同的Activity。比如你栈顶是MainActivity.java,你想启动新的MainACtivity.java是无法实现的。但是栈中可以存在多个MainActivity.java。 比如设置A为singleTop模式,运行 A-B-A 这里栈中可以同时存在了两个A,但是不能在A之上再启动一个A。

3、android:launchMode=”singleTask”
单一栈启动模式,当使用这种启动模式的时候,栈中只能存在一个相同的Activity。比如设置A为singleTask模式,那么执行
A-B-C-D ,此时D在栈顶,你想启动一个A,此时会直接启动在栈底层的A,而不会去新建一个A。并且此时A已经成为了栈顶了,所以C和D都是被移出栈,也就是被销毁了。

4、android:launchMode=”singleInstance”
单例启动模式,这种启动模式比较复杂一点。表明这种启动方式的Activity被启动时候,会存在新的返回栈中。比如设置B为这种模式,
那么当A-B-C-D,(此时D在栈顶)此时原始的栈中就有A、C、D这三个Activity,而B在一个新的栈中。此时当你按back键,你会发现是这样子的,D-C-A-B,这是因为DCA在先创建的(也就是主栈)中,所以当主栈中的Activity全部都移除栈外后, 才会轮到次栈,这个次栈中只有一个B。把Activity独立于一个栈中,是为了别的程序访问此Activity,可以方便多个应用程序共享这个栈中的Activity。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值