关于Activity的启动方式

本文总结了Android中Activity的四种启动模式:standard、singleTop、singleTask和singleInstance,详细阐述了每种模式的特点和应用场景,并提及了相关配置属性如clearTaskOnLaunch、finishOnTaskLaunch等对Activity启动的影响。内容基于API 23测试得出。
摘要由CSDN通过智能技术生成

之前有读过几篇从源码解析Activity的启动,由于自己并没有仔细看过源码,对于里面的很多判断都没有注意到,后来看Activity的Launchmode的时候,才发现有很多看似不重要的东西被我们忽略了。今天就结合自己的面试经验加博客的浏览,总结一下Activity的启动方式。以下总结是基于api23做的测试。

我们在浏览博客的时候,很轻松的就能搜到一堆的关于launchmode的资料,大体上大家介绍的都差不多,一共四种模式

1. standard 默认的标准模式,其特点是你只要调用startActivity来启动它,他就不停的创建,这里要注意一点,这个模式属于癞皮狗,谁启动它,它就跟谁回家(谁启动它,它就被放到谁的Task栈中)。

2. singleTop 栈顶复用模式,如其名,假如它在栈顶那么就复用它,调用它的onNewIntent方法。但是这里要注意一点,启动它的Activity跟它在同一个Task内,否则和standard模式一样,也会重新创建,并放到启动它的Activity所在的栈。

3. singleTask 栈内复用模式,该模式的特点是,在一个Task里面只有一个该Activity,假如已经启动过该Acitity,当再次启动它时,会将其上面的Activity一一出栈,对于该模式有搭配使用的一个属性TaskAfinity,这个属性只有和SingleTask模式相结合才有意义。SingleTask和TaskAfinity结合可以使该Activity运行在TaskAfinity指定的Task里面。这里注意,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值