Activity的启动模式及应用场景

Activity的启动模式及应用场景

Activity的启动模式如今说起来似乎是个古老的话题,可又不得不承认它是个很重要的内容,从android诞生到现在,这些启动模式一直在发挥着作用,只不过不容易被人感觉到它们的存在。我们随手敲下一行startActivity代码就伴随着一个启动该activity的启动模式。这些启动模式将会影响到应用的返回行为。从A启动B,再按back键,会返回到A吗?不一定。为什么呢?请往下看。

关于task

在介绍启动模式之前有必要先介绍一下android中Task的概念,因为它与activity息息相关。引用 官网 的话来说:

Task是用户在执行某项工作时与之互动的一系列 Activity 的集合。这些 Activity 按照每个 Activity 打开的顺序排列在一个返回堆栈中。

通俗地讲,Task就是一个栈,里面放了很多activity,当你按back键的时候系统会将当前task的栈顶activity出栈,然后在屏幕上显示新的栈顶activity。看一下下面这个图:

在这里插入图片描述

介绍完task,接下来具体说一说activity的4种启动模式:

一、standard(标准模式,也是默认启动模式)

standard是最常用的一种启动模式,使用该模式启动Activity,每次启动一个Activity都会重写创建一个新的实例,不管这个实例存不存在,这种模式下,谁启动了该模式的Activity,该Activity就属于启动它的Activity的任务栈中。
但是,如果直接在Application中以标准模式启动Activity,则会报出以下错误(Android7、Android8除外):

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值