1.2 Activity启动模式

1. Activity LaunchMode

  • standard 标准模式
  • singleTop 栈顶复用模式
  • singleTask 栈内复用模式
    一个栈内只有相同Activity只有一个实例,可以通过TaskAffinity指定栈。TaskAffinity默认是应用包名。
  • singleInstance 单实例模式
    特殊的singleTask,此模式的Activity只能单独的位于一个栈中,所以全局只会有一个Activity。

举例
Activity_A,standard,默认栈
Activity_B,Activity_C,singleTask,指定TaskAffinity com.zxz.task_another
启动流程及Activity栈状态:

->A:[A]
->B:[B][A]
->C:[CB][A]
->A:[ACB][A]
->B:[B][A]

2. Activity的Flags

  • FLAG_ACTIVITY_NEW_TASK
    相当于singleTask
  • FLAG_ACTIVITY_SINGLE_TOP
    相当于singleTop
  • FLAG_ACTIVITY_CLEAR_TOP
    singleTask启动模式默认就具有此标记位的效果
  • FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
    等价于在XML中指定Activity的属性android:excludeFromRecents="true"
    具有这个标记的Activity不会出现在历史Activity的列表中,用户无法通过历史列表回到这个Activity

你可能感兴趣的:(1.2 Activity启动模式)