Activity的四种启动模式

  1. Standard 标准模式
    Android创建Activity时的默认模式,假设没有为Activity设置启动模式的话,默觉得标准模式。每次启动一个Activity都会又一次创建一个新的实例入栈,无论这个实例是否存在。
    第一次点击数据传输按钮,第一次到达A界面,查看打印日志
    在这里插入图片描述
    到达A界面之后,再次点击buttontoa按钮,虽然依旧是A界面,但是hashcode的值已经变化,这里充分显示了第一种启动模式每一次

在这里插入图片描述
通过B再返回A
在这里插入图片描述
综上我们发现每一次Activiy都是新创建的

  1. SingleTop 栈顶复用模式
    分两种处理情况:须要创建的Activity已经处于栈顶时,此时会直接复用栈顶的Activity。不会再创建新的Activity;若须要创建的Activity不处于栈顶,此时会又一次创建一个新的Activity入栈,同Standard模式一样。
    首先再ManifestAndroid中修改启动模式
    在这里插入图片描述
    第一次从主页面点击进入A界面,之后在A界面继续点击进入A界面,此时A位于栈顶位置,故不会重复新建
    在这里插入图片描述
    但是点击B的时候,由于栈顶不是B,故需要重建,此时的hashcode已经发生了变化
    在这里插入图片描述
    再跳回至A,并在A内自己的内部跳转,依旧不变
    在这里插入图片描述

  2. SingleTask 栈内复用模式
    若须要创建的Activity已经处于栈中时,此时不会创建新的Activity,而是将存在栈中的Activity上面的其他Activity所有销毁,使它成为栈顶。
    第一次点击进入A界面
    在这里插入图片描述
    再次点击A界面
    在这里插入图片描述
    进入B 界面
    在这里插入图片描述
    返回A界面,这里有区别于上一种启动模式,这里返回A和第一次进入A是完全相同的。
    在这里插入图片描述

  3. SingleInstance 单实例模式
    SingleInstance比较特殊,是全局单例模式,是一种加强的SingleTask模式。它除了具有它所有特性外,还加强了一点:具有此模式的Activity仅仅能单独位于一个任务栈中。这个经常使用于系统中的应用,比如Launch、锁屏键的应用等等,整个系统中仅仅有一个!所以在我们的应用中一般不会用到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值