【android】activity的4种启动模式简介
2024-09-04 12:13:14
首先咱必须知道,activity是以栈(后进先出)的结构进行管理的。
当活动A启动了活动B时,A被压入到栈内,B在栈的最顶层。当B调用finish()结束活动时,B从栈弹出,此时A在栈的最顶层。
我们可以在AndroidManifest.xml文件的activity节点,通过指定android:launchMode="standard"属性来实现启动模式的变更。
好,了解活动是如何管理的,那么咱就来了解下,活动的4种启动模式。
1:stand
如果不指定启动模式的话,都是用此标准型启动模式。比如我们启动了活动A,不管栈里面是否已经存在A,A都会被重新创建一遍压入栈。
2:singleTop
顶层活动唯一。比如我们启动了活动A,此时如果栈的最顶层已经存在了A,那么此时就直接使用A。
3:singleTask
栈内活动唯一。和2最大的区别是,此模式不管你活动在栈的什么位置,只要启动A的时候发现A已经在栈内了,在A上面的活动全部被销毁(生命周期比如onDestory也会被执行),直接使用A
4:singleInstance
新创建一个栈来管理此活动。
比如我们指定了活动B启动模式为singleInstance, A、C默认使用stand;以A -> B -> C顺序来启动三个活动后:
C活动finish()后,返回的是A(而不是B,因为管理B的栈独立于AC);A活动finish()后,这时当前的栈已经空了,于是就找到了其他栈(也就是活动B所在的栈)。
最新文章
- Lua 排行榜更新
- 6-05使用SQL语句删除数据
- uniq,sort,
- Android开发者的Git&;GitHub(二)
- RabbitMQ学习总结 第一篇:理论篇
- jenkins smtp设置调试
- Dubbo架构设计详解--转载
- 20个linux命令行工具监视性能(上)
- @Transactional失效的问题
- Java设计模式偷跑系列(十八)建模和责任链模式的实现
- JavaScript面向对象基础语法总结
- JVM基础(5)-垃圾回收机制
- html基础知识笔记
- Server-U FTP与AD完美集成方案详解
- 校园服务nabcd需求分析
- Redis(二)冰叔带你了解Redis-哨兵模式和高可用集群解析
- CF-517C-思维/math
- 关于dumper和mysqldump的
- 使用vim编程步骤
- 20155311《网络对抗》PC平台逆向破解(二)