Android SingleInstance类型LaunchMode启动场景问题咨询
Android LaunchMode场景问题解答
singleInstance启动模式核心规则
singleInstance是Android中隔离级别最高的Activity启动模式,核心特性如下:
- 全局仅允许存在一个该模式的Activity实例
- 该Activity会独占一个独立任务栈,不会和其他任意Activity共享任务栈
对应场景运行表现
当前已有两个任务栈:Task1(栈结构A→B→C→E,所有Activity均为standard模式)、Task2(栈结构仅D,D为singleInstance模式),此时启动同为singleInstance模式的F时,运行逻辑如下:
- 系统首先全局检索F实例是否存在,检索结果为不存在,因此创建F的新实例
- 系统为F单独创建全新的独立任务栈Task3,F作为Task3的唯一根Activity入栈
- 前台当前显示界面切换为F,后台保留原有Task1、Task2的栈结构不变
补充回退栈行为
此时用户操作返回键的回退逻辑和启动F之前的前台任务栈相关:
- 在F页面按返回键:F实例销毁、Task3同步销毁,系统自动切回启动F之前处于前台的任务栈,显示对应栈顶Activity(若之前前台为Task2则显示D,若之前前台为Task1则显示E)
- 后续返回操作会按照当前活跃任务栈的结构依次出栈,所有任务栈的Activity全部销毁后退出应用
内容的提问来源于stack exchange,提问作者Seyfi
相关产品推荐
相关产品推荐

