Activity 启动模式

本文详细介绍了Android中Activity的启动模式,特别是`FLAG_ACTIVITY_NEW_DOCUMENT`如何创建新的任务栈,实现类似PC端的多窗口效果。通过结合`FLAG_ACTIVITY_NEW_TASK`和`FLAG_ACTIVITY_MULTIPLE_TASK`,可以实现不同Activity间的自由切换。此外,`FLAG_ACTIVITY_RETAIN_IN_RECENTS`用于在根Activity关闭后保持任务在最近应用列表中。文中还提到了`documentLaunchMode`属性的四种设置及其对启动行为的影响。

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


Flag

FLAG_ACTIVITY_NEW_DOCUMENT

此处document 这个单词实在是不知道怎么翻译才恰当,document 本意就是文档,文件的意思,本文展示就翻译成文档的意思吧,我觉得这样稍微准确一点,因为更具google 官方文档对此flag 的解释以及相关的举例说明中,我觉得用文档可能更好一点,

在说FLAG_ACTIVITY_NEW_DOCUMENT 之前我们想来回想一下我们在pc端某系程序的一种场景,在使用pc 的时候,比如邮件客户端,当我们在阅读邮件某一封邮件的时候,突然需要查看之前的某一封邮件,这时候我们往往不是关掉当前邮件,再去打开另一封有邮件,查看完了后再打开之前关闭的邮件继续查阅。而是在当前邮件窗口打开的同事,在新建一个窗口打开我们需要查看的之前的邮件,这样就可以不用关闭当前的邮件窗口,实现两个邮件窗口同时打开,在查阅过程中随时都可以再窗口之间切换,是不是很方便?这好像是理所当然,pc 上大家都已经习惯了很多很多应用可以同时打开多个窗口,比如office 办公软件,还有浏览器等等,并且通过快捷键或者鼠标很方便再各个窗口之间切换,可是在移动平台android 手机上呢?

大家都知道在android 手机上一般都有3个按键(虚拟的或者物理的)返回键,home 键,recent 键,当我们按下recent 键的时候,手机会启动一个叫 Recents Screen的东西,在 Recents Screen 界面可以实现在之前打开过的app 之间快速切换,之所以能这样是因为android 有一种叫做Task 的机制,默认情况情况下,每次新启动一个app 的时候都会新建一个task,之后启动的App 内的activity 都放入同一个task,也就是说默认情况下不同app 都有不同的task,所以通过recent 在不同task 之间切换就实现了不同app的切换。

既然recent 按键可以实现不同task 之间的切换,那么我们是不是可以在启动App 内的每一个Activity 的时候给每一个Intent add一个 FLAG_ACTIVITY_NEW_TASK 同时在AndroidManifest.xml 文件中为每一个Activity 设置不同的android:taskAffinity,这样每一个Activity 都属于不同的task,就可以通过recent 见来切换了,咋一看貌似是这样,如果这样就能实现了那么

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮克桃在写代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值