立即注册

QQ登录

只需一步,快速开始

老冷编程学院

老冷培训班汇总介绍老冷付费工具汇总介绍老鬼UI编程学院EasyClick所有产品简介EasyClick官方交流群
IOS授权价格IOS/安卓 自助提卡链接安卓-中控群控-电脑授权-购买IOSusb版投屏群控教程IOS脱机版激活教程
IOS脱机版wifi局域网脚本中控教程IOS脱机版wifi局域网群控投屏教程远程调试frp,兼容安卓/IOS热更新工具,兼容安卓/IOS脱机版老冷网盘
查看: 617|回复: 0

[教程] 【Android】安卓Activity的几种静态设置启动模式

[复制链接] |主动推送

933

主题

101

回帖

3万

积分

管理员

【导师】

Rank: 9Rank: 9Rank: 9

积分
37264
最后登录
2024-5-4
在线时间
1248 小时

兔年勋章金牌银牌铜牌导师微信认证热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老QQ认证EC VIP学员

发表于 2023-11-15 14:23:07 | 显示全部楼层 |阅读模式

马上注册,解锁更多高级玩法

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1.默认启动模式 standard
该模式可以被设定,不在 manifest 设定时候,Activity 的默认模式就是 standard。
在该模式下,启动的 Activity 会依照启动顺序被依次压入 Task 栈中:

1.png
2.栈顶复用模式 singleTop
在该模式下,如果栈顶 Activity 为我们要新建的 Activity(目标Activity),那么就不会重复创建新的Activity。
2.png

应用场景
适合开启渠道多、多应用开启调用的 Activity,通过这种设置可以避免已经创建过的 Activity 被重复创建,多数通过动态设置使用。

3.栈内复用模式 singleTask
与 singleTop 模式相似,只不过 singleTop 模式是只是针对栈顶的元素,
而 singleTask 模式下,如果task 栈内存在目标 Activity 实例,则将 task 内的对应 Activity 实例之上的所有 Activity 弹出栈,并将对应 Activity 置于栈顶,获得焦点
3.png

应用场景
程序主界面:我们肯定不希望主界面被创建多次,而且在主界面退出的时候退出整个 App 是最好的效果。
耗费系统资源的Activity
对于那些及其耗费系统资源的 Activity,我们可以考虑将其设为 singleTask模式,减少资源耗费。

4.全局唯一模式 singleInstance
在该模式下,我们会为目标 Activity 创建一个新的 Task 栈,将目标 Activity 放入新的 Task,并让目标Activity获得焦点。
新的 Task 有且只有这一个 Activity 实例。
如果已经创建过目标 Activity 实例,则不会创建新的 Task,而是将以前创建过的 Activity 唤醒。
4.png
看一个示例,Activity3 设置为singleInstance,Activity1 和 Activity2 默认(standard),
下图程序流程中,黄色的代表 Background 的Task,蓝色的代表 Foreground 的Task。
返回时会先把 Foreground 的Task 中的 Activity 弹出,直到 Task 销毁,然后才将 Background的 Task 唤到前台,所以最后将Activity3 销毁之后,会直接退出应用。
5.png




【安卓】Android Intent FLAG标志位解释
http://bbs.laoleng.vip/thread-502-1-1.html
(出处: 老冷编程学院)


VIP培训班介绍汇总[安卓/IOSusb版/IOS脱机版/PHP/nodejs等]
http://bbs.laoleng.vip/forum.php?mod=viewthread&tid=428

付费工具介绍汇总[热更/远程调试/IOS易语言UI/拓展插件等]
http://bbs.laoleng.vip/forum.php?mod=viewthread&tid=430
游客
回复
您需要登录后才可以回帖 登录 | 立即注册

关闭

想要力量吗骚年 上一条 /2 下一条

关闭

免责声明|Archiver|手机版|闽ICP备20013040号-2| 老冷编程学院 |网站地图

GMT+8, 2024-5-4 23:07

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表