Activity启动模式之FLAG_ACTIVITY_CLEAR_TOP
模式 启动 Top Activity Clear flag
2023-06-13 09:12:28 时间
大家好,又见面了,我是你们的朋友全栈君。
关于Android的Intent.FLAG_ACTIVITY_CLEAR_TOP
如果设置,并且这个Activity已经在当前的Task中运行,
因此,不再是重新启动一个这个Activity的实例,而是在这个Activity上方的所有Activity都将
关闭然后这个Intent会作为一个新的Intent投递到老的Activity(现在位于顶端)中。 例如:假设
一个Task中包含这些Activity:A,B,C,D。如果D调用了startActivity(),并且包含一个指向
ActivityB的Intent,那么,C和D都将结束,然后B接收到这个Intent,因此,目前stack的状况是
A,B。 上例中正在运行的Activity B既可以在onNewIntent()中接收到这个新的Intent,
也可以把自己关闭然后重新启动来接收这个Intent。
如果它的启动模式声明为“multiple”(默认值),并且你没有在这个Intent中设置FLAG_ACTIVITY_SINGLE_TOP
标志那么它将关闭然后重新创建;对于其它的启动模式,或者在这个Intent中设置FLAG_ACTIVITY_SINGLE_TOP
标志,都将把这个Intent投递到当前这个实例的onNewIntent()中
这个启动模式还可以与FLAG_ACTIVITY_NEW_TASK结合
起来使用用于启动一个Task中的根Activity,它会把那个Task中任何运行的实例
带入前台,然后清除它直到根Activity。这非常有用,例如,当从Notification Manager处启动一个
Activity。
假如有以下3个Activity
A - B - C
当 B - A - B 跳转的时候,使用Intent的FLAG_ACTIVITY_CLEAR_TOP会让第一个B和第二个A,destory掉
但是当B - A - C跳转的时候不会调用B和A的destory
- 针对该Intent配置的目标为FLAG_ACTIVITY_CLEAR_TOP, 表示如果在Activity栈中存在该Activity对象则不再创建对象,结束该对象之上的所有Activity回到该Activity上
- 上面当A跳C的时候不满足此条件。 当然如果你想实现这个效果可以使用: it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK);
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/160773.html原文链接:https://javaforall.cn
相关文章
- 前端的设计模式系列-观察者模式
- Edgex foundry(Ireland-2.0版本)- Security 模式启动过程分析security-bootstrapper[通俗易懂]
- Activity启动模式SingleTask和Intent.FLAG_ACTIVITY_CLEAR_TOP区别
- Activity启动模式singleTask的理解
- 彻底明白Activity启动模式-SingleTop、SingleTask、SingleInstance具体使用场景[通俗易懂]
- linux必须运行在enforcing,Linux(入门基础):97—SELinux三种模式的启动、关闭、查看(getenforce、setenforce、sestatus、restorecon)…
- 【说站】ps混合模式在哪里找
- 企业调度监控平台TASKCTL流程启动三种模式的不同区别
- .NET 实现启动时重定向程序运行路径及 Windows 服务运行模式部署
- 中介者模式(Mediator)
- JS实现全屏模式
- 【Android 应用开发】Android 返回堆栈管理 ( 默认启动模式 | 栈顶复用启动模式 | 栈内复用启动模式 | 单实例启动模式 | CLEAR_TOP 标识 )
- java I/O之装饰者模式详解编程语言
- 管理Linux:掌握管理员模式的要领(linux管理员模式)
- Linux进入单用户模式开启新世界(linux单用户模式启动)
- Linux系统如何更改启动模式(linux修改启动模式)
- 系统Linux的多元分支系统:新的模式(linux的分支)
- 如何在 Ubuntu 18.04 中启动到救援模式或紧急模式
- Vmware虚拟机三种网络模式详解
- MySQL安全模式启动:提高安全性的必要措施(mysql安全模式启动)
- MSSQL三种模式:探究其中之精髓(mssql的三个模型)
- 立即开启RedisCLI 命令行模式(启动redis-cli)
- 研究发现吸积盘发光的模式因超大质量黑洞质量的不同而不同
- PHP设计模式之责任链模式的深入解析