. . . . .
全面解析 Activity 的 4 种启动模式
说到 Android 的启动模式,首先来看一个实际的业务场景。我之前在公司实习的时候,
我所在的部门只负责一个品类〔国际机票〕,那用户从机票首页开始搜索机票到最终完成
订单并支付大致分为以下几个流程〔实际流程因为考虑的问题比拟多,所以要比这稍微复
杂些〕:
1. 用户在机票首页确认好出发、到达目的地、日期与人数后,就可以点击“搜索〞进
入到搜索结果页
2. 用户根据意愿选择相应航班并点击进入确认订单页
3. 用户确认好订单容点击下单,开始支付,支付完成跳支付完成页
4. 用户可以选择回到首页,或者去公共订单系统查看订单详情〔这属于公共局部,不
在我们讨论的围了〕
经过上面 4 个步骤整个购票流程就算完毕了。但是,这里有个问题,就是用户从首页到
最后的支付完成页之间经历了这么多的 Activity,那用户完成了支付后想回到首页是不是
要一层一层的往回退才行?如果是这样的话,那就太不人性化了,那怎样才能在完成支付
后一键回到首页呢?有人可能会说,那就直接从支付完成页跳转到首页不就可以了吗?这
样当然是可以的,但是这样做那之前打开的那么多 Activity 怎么办呢?难道就让它们待在
Activity 任务栈中吗?这样岂不是太浪费存了!请看我画的示意图:
如上图所示,如果我们在支付完成之后启动首页 Activity 那页面 1-页面 5 之间的所有
Activity 对用户来说都是无用的,并且占用的存,极浪费这本来可能就很紧的 Android 存
资源。那有没有一些优雅的方式来解决这个问题呢? 我们可以想象一下,有没有可能在从
页面 4 跳转首页的时候把原来处于首页之上的所有 Activity 全部干掉呢?这样不就刚好解
决了我们刚刚所说浪费资源的问题了吗?就像下列图一样:
1 / 9