学习一下Activity的四种启动模式

activity的四种启动模式分别是:

1、Standard 标准

2、SingleTop 顶部复用

3、SingleTask 栈内复用

4、SingleInstance 单例模式

 

首先要了解一个概念:任务栈

        它是专门用来存放Activity的栈,每一次使用startActivity方法创建的Activity实例,都会被存放在这里统一管理。这个Task栈遵循“先进后出”原则,每一次我们按下back键,都会先销毁栈顶的Activity。

 

然后再来谈谈标准启动模式 Standard

        在AndroidManifest文件中,我们需要对每一个Activity配置启动模式,如果我们没有手动配置,那么这个Activity将会按照默认的标准启动模式来启动。

        在这种模式下,不论任务栈中是否已经存在过该Activity的实例,都会产生一个新的实例压入栈中。要注意的是,新产生的实例被压入哪个任务栈,取决于调用startActivity方法的Activity属于哪个任务栈。简单地说就是:Activity A属于1号任务栈,此时在A中调用startActivity(Activity B),那么此时Activity B被启动之后,也会被压入一号任务栈。

        这也就是为什么在Application和Service中不能直接启动Activity的原因,因为它们没有对应的任务栈,所以会导致程序报错而崩溃。所以如果要在Application或Service中启动Activity,要注意添加FLAG_ACTIVITY_NEW_TASK标记。

 

顶部复用模式 SingleTop

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值