Activity启动模式

启动模式可以通过AndroidManifest.xml中通过标签指定android:lunchMode属性来选择启动模式

standard

standard是默认的启动模式,在该模式下,每当启动一个新的活动,它就会在返回栈中入栈,并处于栈顶位置。
在这里插入图片描述
点开程序时 会触发一次onCreate:
在这里插入图片描述
点击两次BUTTON1 :
在这里插入图片描述
新建了两个FirstActivity实例

singleTop

当活动的启动模式是singleTop,在启动活动时如果发现返回栈的栈顶已经是该活动,则认为可以直接使用它,不会再创建新的活动实例
在这里插入图片描述
在AndroidManifest.xml中修改launchMode为 singleTop

开启程序时,会触发onCreate
在这里插入图片描述
后续点Button1不会有任何反应,也就是没有创建新的实例

修改FirstActivity和SecondActivity的代码:
在这里插入图片描述
在这里插入图片描述

FirstActivity点击按钮跳转到SecondActivity SecondActivity点击按钮跳转到FirstActivity
在这里插入图片描述
点开程序 创建First实例,点击Button1 创建Second实例,点击Button2 创建First实例

singleTask

当活动启动模式是singleTask,每次启动该活动时系统首先会在返回栈中检查是否存在该活动的实例,如果发现已经存在则直接使用该实例,并且把在这个活动之上的活动统统出站,如果没有发现就会创建一个新的活动实例

FirstActivity:
在这里插入图片描述

SecondActivity:
在这里插入图片描述
启动程序,点击Button1 后点击Button2:
在这里插入图片描述
在SecondActivity启动FirstActivity时,返回栈已经存在一个FirstActivity实例并在Second下面,于是Second出战,而First重新成为栈顶活动

singleInstance

指定为singleInstance的活动会启动一个新的返回栈来管理这个活动

需要共享的活动可以用这种启动方式

FirstActivity:
在这里插入图片描述
SecondActivity:
在这里插入图片描述
ThirdActivity:
在这里插入图片描述
启动软件,分别点击Button1 Button2:
在这里插入图片描述
可以发现First和Third是同一个栈,Second单独一个

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值