Android Activity启动模式

本文介绍了Android中Activity的四种启动模式:标准模式每次都创建新实例;singleTop模式若实例在栈顶则重用;singleTask模式确保全局唯一实例,回退栈清理;singleInstance模式在独立任务栈中唯一。
摘要由CSDN通过智能技术生成

1、标准模式

1)从task中启动Activity时,该Activity的新实例总是在当前task中创建

2)每次启动Activity,都会创建该Activity类的新实例

3)一个task中可以存在同一Activity的多个实例

4)一个Activity的多个实例可以出现在多个task栈中

2、singleTop(又称单例模式)

1)如果启动模式设置为singleTop的Activity实例未处于栈顶,则其表现与启动模式设置为standard的Activity的表现一致

2)如果启动模式设置为singleTop的Activity的实例位于任务栈的栈顶 ,则不会创建该Activity的新实例。只是调用位于栈顶的该Activity实例的onNewIntent方法,将新的intent传递给该实例。

3、singleTask

1)设置为singleTask的Activity,具有全局唯一性,在Android系统中只能创建该Activity的一个实例。

2)如果启动s设置为singleTask的Activity时,已经存在该Activity的实例,则将该实例之上的所有Activity实例释放,将该实例重新带回到栈顶,并调用器onNewIntent方法,将新的intent传递给该实例

3)在创建设置为singleTask模式的Activity的实例时,如果当前task的taskAffinity与该Activity的taskAffinity一致,则直接在当前task中 创建;如果当前task的taskAffinity值与该Activity的taskAffinity不一致,则在新的任务中创建该Activity的实例。

4、singleInstance

1)当创建设置为singleInstance模式的Activity时,总是在新的任务中创建

2)设置为SingleInstance模式的Activity,具有全局唯一性。在Android系统中只能存在该Activity的一个实例

3)设置为singleInstance模式的Activity,总是单独在一个task中存在 也就是说在该Activity所在的task栈中不可能存在其他的activity

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yinhunzw

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

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

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

打赏作者

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

抵扣说明:

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

余额充值