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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容