Activity的4种启动模式

1.standard模式(默认启动模式)

每次启动都会为该Activity创建一个新的实例,并加入返回栈的栈顶

2.singleTop模式

如果Activity的启动模式设置为singleTop,在启动Activity时,如果发现返回栈的栈顶已经是该Activity了,则直接使用该Activity实例,不会再创建一个新的Activity实例

3.singleTask模式

如果Activity的启动模式设置为singleTask,在启动Activity时,系统首先会在返回栈中检查是否有该Activity的实例,如果有,则直接使用该Activity实例,不再创建一个新的Activity实例,并将返回栈中在该Activity实例之上的所有Activity出栈;如果没有,则创建一个新的Activity实例,并加入返回栈的栈顶

4.singleInstance模式

如果Activity的启动模式设置为singleInstance,在启动该Activity时,会建立一个新的返回栈来管理这个Activity。该模式主要是用于解决共享Activity实例的问题,将需要共享的Activity启动模式设置为singleInstance

假设有一个场景:

activity1--->activity2(singleInstance模式)

activity2--->activity3

然后依次back,则顺序为activity3--->activity1---->activity2。

因为activity2为singleInstance模式,启动时会新建立一个返回栈来进行管理(此时就可以对外形成共享了),接下来activity2--->activity3,因为activity3为默认模式,所以会和activity1在同一个task里

此时back,就会从activity3--->activity1;

再back,activity1会出栈,此时activity1和activity3所在的task为空了,所以会显示另一个返回栈里的activity2,即activity1--->activity2;

再back,所有返回栈都为空了,就退出了应用程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值