Android 四种启动模式和 Activity 的 Flag

启动模式
1. standard 标准启动
标准模式,也是默认模式。每次请求启动 Activity 的时候,都会重新创建这个 Activity 的实例。
2. singleTop 栈顶复用
所谓栈顶复用就是,如果请求启动的 Activity 处于这个任务栈的栈顶,不会直接创建新的 Activity 实例,而是调用此 Activity 的 onNewIntent 方法。
如果请求启动的 Activity 不在这个任务栈的栈顶,那么会从新创建这个 Activity 的实例。
3. singleTask 栈内复用
所谓栈内复用就是,如果这个任务栈存在请求启动的 Activity 的实例,那么系统不会重新创建这个 Activity 的实例,而是清空( singleTask 默认具有 clearTop 效果 )该 Activity 之上的其他实例,然后调用 onNewIntent 方法。如果任务栈不存在请求启动的 Activity 的实例,那么创建此 Activity 实例,并入栈。
4. singleInstance 单实例模式
单实例模式就是这个 Activity 只能单独的存在一个任务栈中,由于具有 singleTask 的所有特性,这个 Activity 启动后,这个任务栈不会有其他的 Activity 实例。

Activity 的 Flag

  1. FLAG_ACTIVITY_NEW_TASK
    效果同 singleTask 启动模式。

  2. FLAG_ACTIVITY_SINGLE_TOP
    效果同 singleTop 启动模式。

  3. FLAG_ACTIVITY_CLEAR_TOP
    设置了此标记的 Activity 在启动的时候,在同一任务栈中,位于此 Activity 实例之上的 Activity 实例都会出栈。一般和 FLAG_ACTIVITY_NEW_TASK 一起使用。

  4. FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
    设置了这个标记的 Activity 不会出现在历史 Activity 列表中。效果同 AndroidManifast.xml 中设置 android:exculdeFromRecents=”true”.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值