Android Activity四种启动模式简介

  1. activity有四种启动模式, standard、 singleTop、 singleTask、signleInstance

  2. 以上是按启动模式的复杂程度来排序的,下面依次做介绍

    standard : activity默认的启动方式,activity每次被启动都会创建一个新的实例

    singleTop : 如果被启动的activity在当前任务栈顶,则只调用activity实例中的onNewIntent()方法,否则创建新的实例

    singleTask : 如果当前任务栈中存在要被启动的activity实例,则执行实例的onNewIntent()方法,并将它以上的所有activity全部销毁。如果当前任务栈中不存在activity的实例,则创建。

    singleInstance : 该启动模式对应的activity会在一个新的任务中进行实例化。如果已经存在,则执行onNewIntent()方法。

  3. 前面介绍的是activity四种启动模式的基本用法。接着介绍Activity的TaskAffinity对activity启动模式的影响。

    TaskAffinity:意思是亲和度,应用中每个activity都有一个TaskAffinity,默认为包名,也可以在activity标签中进行自定义。

    将activity的启动模式设为singleTask,如果没有重新定义taskAffinity,那么在当前任务栈中创建实例,否则,在新的任务栈中创建实例

    将activity的启动模式设为singleInstance,如果taskAffinity与当前包名一致,则由该activity启动的activity将在新的任务栈中创建实例

    测试代码地址:https://github.com/tb-yangshu/android_blog_source/tree/master/TestAndroidLauchMode

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值