Android 的四种启动模式

来源于互联网,在此仅作为记录。

1.standard

Activity 的默认启动模式,每次激活 Activity 的时候都会创建一个新的 Activity 实例,并放入任务栈中。使用场景:基本绝大多数地方都可以用。

img

2.singleTop

这可能也是非常常用的 launchMode 了。如果在任务的栈顶正好存有该 Activity 的实例,则会通过调用 onNewIntent() 方法进行重用,否则就会同 standard 模式一样,创建新的实例并放入栈顶。

当且仅当启动的 Activity 和上一个 Activity 一致的时候才会通过调用 onNewIntent() 方法重用 Activity

img

FLAG_ACTIVITY_SINGLE_TOP
3.singleTask

这个 launchMode专门用于解决上面 singleTop 的另外一种情况,只要栈中已经存在了该 Activity 的实例,就会直接调用 onNewIntent() 方法来实现重用实例。

img

4.singleInstance

在一个新栈中创建该 Activity 的实例,并让多个应用共享该栈中的该 Activity 实例。一旦该模式的 Activity 实例已经存在于某个栈中,任何应用再激活该 Activity 时都会重用该栈中的实例,是的,依然是调用 onNewIntent() 方法。其效果相当于多个应用共享一个应用,不管是谁激活,该 Activity 都会进入同一个应用中。

img

Intent 标签

通过代码来设置 Activity 的启动模式的方式,优先级比清单文件设置更高。

  • FLAG_ACTIVITY_NEW_TASK
    这个标识会使新启动的 Activity 独立创建一个 Task。
  • FLAG_ACTIVITY_CLEAR_TOP
    这个标识会使新启动的 Activity 检查是否存在于 Task 中,如果存在则清除其之上的 Activity,使它获得焦点,并不重新实例化一个 Activity,一般结合 FLAG_ACTIVITY_NEW_TASK 一起使用。
  • FLAG_ACTIVITY_SINGLE_TOP
    等同于在 launcherMode 属性设置为 singleTop。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值