Skip to content
阅读进度

四种常见启动模式有什么区别? ​

返回 Android 核心 目录

标准回答 ​

standard 通常新建实例;singleTop 仅在目标实例已处于目标任务栈顶时复用;singleTask 在匹配的任务与实例条件下复用,并通常移除其上方 Activity;singleInstance 具有更强的任务隔离约束。复用时新 Intent 通常交给 onNewIntent。(任务与返回栈)

机制解释 ​

启动模式解决的是实例和任务栈行为,实际结果还受 Intent flags、taskAffinity、启动来源等影响。FLAG_ACTIVITY_NEW_TASK 参与任务选择,不等于“开新线程”,也不保证降低启动时延。较新平台还有 singleInstancePerTask,可作为扩展了解。

延伸追问 ​

onNewIntent 里直接读取 getIntent 可以吗?如果后续代码要从 getIntent 读取新参数,应调用 setIntent(intent) 或明确使用传入参数,避免继续拿旧 Intent。

内容来源 ​

用完整回答理解机制,用真实证据解释项目。