android Activity启动模式

Activity的四种启动模式

    1.singleInstance

    Activity只会在自己的任务栈里面,并且这个任务栈里面只会有一个实例存在。如果你要保证一个Activity在整个操作系统里只有一个实例存在,使用singleInstance,是你的不二选择。

一旦要启动一个带singleInstance的Activity时,系统将为这个Activity创建一个全新的任务栈。举例说明,如果在1号任务栈中启动一个带singleInstance的Activity时,系统将创建一个全新的2号任务栈并将该Activity存于栈中,并将2号任务栈置前,1号任务栈滞后;如果当前在2号任务栈想实例化1号栈里的普通模式的Activity,系统则将1号任务栈置前,2号任务栈滞后,并把实例化一个普通模式的Activity压入1号栈中,如果当前在2号任务栈依旧启动相同带singleInstance的实例,则系统什么也不添加;如果当前系统任务栈同时存在1号任务栈和2号任务栈,并且当前界面Activity在1号任务栈中并且要启动2号任务栈中带singleInstance

的Activity,系统则只是将2号任务栈置前于1号任务栈。

    2.singleTask

    当前任务栈里里面只能有一个实例存在,当开启Activity的时候去检查任务栈里面是否有实例已经存在,如果有实例存在就复用这个已经存在的Activity,并且把这个Activity上面的所有别的Activity都清空,复用这个已经存在的Activity,保证整个任务栈里面只有一个实例存在

    3.singleTop

    如果任务栈的栈顶存在这个要开启的Activity,系统则不会重新创建Activity,而是复用已经存在的Activity。保证栈顶如果存在,则不会重复创建

    4.stand

    标准模式启动一个Activity

针对这四种启动模式,个人建议是写一个简单的demo,反复启动不同模式的Activity,自然就能发现其中的特点。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值