Android Activity的LaunchMode有四种模式

本文详细解析了Android中Activity的四种启动模式:standard、SingleTop、SingleTask和SingleInstance的特点及应用场景。通过具体示例说明了不同模式下Activity如何管理和复用。

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

记录知识点
Activity的LaunchMode有四种模式
1,standard 普通
2,SingleTop 单例
启动activity如果activity在栈顶不会创建新对象而是调用OnNewIntent()方法。
当该activity不在栈顶,则会创建新对象与standard没什么区别。
例如:
A为singleTop 栈内情况从下至上为A-B-C-D “D”又跳转“A”同时设置了FLAG_ACTIVITY_CLEAR_TOP,此时栈顶只有A,
这时会调用A中重写的OnNewIntent()方法。
3,SingleTask  不会创建相同实例
启动activity时如果该activity在栈里面已经存在,则不会创建新对象,而是clear掉改对象以上的栈空间。同时
会调用OnNewIntent().
4,SingleIntance
设置singleIntance原理:其实是创建了一个新的Task,Android 中的Task可以理解为栈,该Task里面只有一个activity
故此activity不受application的限制,可以多个应用共享。
例如:
调用顺序:(Task1)A-(Task1)B-(Task2)C-(Task1)B 
C为singleIntance,以上栈图可定义为2个。C单独在一个Task(栈)内。
从后往前返回时
调用顺序: (Task1)B-(Task1)B-(Task1)A-(Task2)C
之所以2次显示Task1中的B是因为Task1为默认standard状态,该状态根据有顺序的加入栈中,不停创建新对象。
图下
(Task1)  (Task2)  
 |B| 
 |B|      |C| 退出总在最后
 |A|
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值