Android 四种启动模式和 Activity 的 Flag

来源:互联网 发布:js调用手机相册插件 编辑:程序博客网 时间:2024/05/01 00:00

启动模式
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
原创粉丝点击