外观
如何把 Activity 启动到指定 Display?
标准回答
可通过 ActivityOptions.setLaunchDisplayId 指定目标显示,再把 options 传给 startActivity。启动是否成功还取决于目标 Display 是否存在、调用者是否允许在该显示启动、显示是否私有或可信,以及启动模式是否复用现有任务或实例。系统端会结合调用上下文、任务历史和启动选项决定最终位置。我会检查任务实际归属的 displayId,并用 isActivityStartAllowedOnDisplay 等接口判断适用的启动权限,不能只看启动参数是否设置成功。
延伸追问
已有任务跨屏迁移和创建一个新 Activity 是两种不同操作;是否复用必须结合 launchMode 和 Intent flags。
内容来源
- Android Framework 知识手册 · 原条目
3-5