安卓基础 - Activity的四种启动模式和应用场景

本文深入解析Android中Activity的四种启动模式:standard、singleTop、singleTask与singleInstance,阐述每种模式的特点及适用场景,帮助开发者理解并正确应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

简介

通过设置ActivityManifestActivity_launchMode可以设置Activity的启动模式。

 默认情况下,使用启动模式:standard。

同时,launchMode可以通过Intent flags的改变在运行时被复写,比
如 Intent flags FLAG_ACTIVITY_SINGLE_TOP, FLAG_ACTIVITY_NEW_TASK,
FLAG_ACTIVITY_MULTIPLE_TASK.

模式1:standard。默认模式。

这是默认的启动模式,每次启动,都启动一个new Instance。

模式2:singleTop

可以看出,当task顶部有singleTop的Activity时,就复用;若没有就重新创建。

singleTop:就是栈顶只有一个instance。

适合接受推送消息的展示页

某些本应只展示一个的场景,比如一下子收到一堆推送消息,不能每个都弹出来吧。但凡是这样的都行。优酷的推荐视频,电商app推送一个活动。

模式3:singleTask

为什么会这样呢。因为Activity2是singleTask,如果task里没有就new,若有,就把Activity2之上的全部移除掉。这样,自己就变成了顶。所以说,singleTask是singleTop的扩展。

singleTop:顶上不是target Activity,new一个

singleTask:顶上不是target Activity,移除target之上的,把自己变成top。

singleTask的特性是头上不允许有任何task。也不会有重复的instance。在target Activity之后的任何activity都会被干掉。等于重生啊。

适合程序入口,不需要启动后activity的

是的,只能用在启动页了吧,首页,这种只允许有一个instance,如果有其他就移除掉它顶上的。从这个Activity进入的其他activity都抛弃掉了。用户要再操作一次。

官网的文档说----make sure to test the usability of the activity during launch

确实,得好好考虑下,不是所有activity都可以用的

模式4:singleInstance

 


这图有点复杂。两个框代表两个task,这应没什么问题。下框没连接部分,都跑到Activity2去了。

可以看到一启动到Activity2就会重新开辟一个task。而这里头的task只有一个activity2.

在返回的时候,是一个task,一个task的返回的。

要从当前的task开始,上图task2结束后就跳转到task1了。

singleInstance的特性是  完全同程序分离。完全独立运行的。

同样的也要想清楚再用。

适合需要与程序分离开的页面。
————————————————
版权声明:本文为优快云博主「手艺人王学明」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/wangxueming/article/details/73294777

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值