Skip to content
阅读进度

如何把 Activity 启动到指定 Display? ​

返回 Framework 与系统服务 目录

标准回答 ​

可通过 ActivityOptions.setLaunchDisplayId 指定目标显示,再把 options 传给 startActivity。启动是否成功还取决于目标 Display 是否存在、调用者是否允许在该显示启动、显示是否私有或可信,以及启动模式是否复用现有任务或实例。系统端会结合调用上下文、任务历史和启动选项决定最终位置。我会检查任务实际归属的 displayId,并用 isActivityStartAllowedOnDisplay 等接口判断适用的启动权限,不能只看启动参数是否设置成功。

延伸追问 ​

已有任务跨屏迁移和创建一个新 Activity 是两种不同操作;是否复用必须结合 launchMode 和 Intent flags。

内容来源 ​

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