Skip to content
阅读进度

多窗口中是否只有一个 Activity 处于 RESUMED 状态? ​

返回 Framework 与系统服务 目录

标准回答 ​

Android 10 及之后支持 multi-resume,多个可见且可聚焦的顶部 Activity 可以同时处于 RESUMED,因此不能用 onResume 唯一判断谁正在接收用户操作。可见性、生命周期、窗口焦点和 top-resumed 是不同维度。窗口焦点可以通过相应焦点回调判断;相机等独占资源需要结合 onTopResumedActivityChanged、资源可用性和异常回调处理。PiP 等不可聚焦情形可能进入 PAUSED,但仍然可见,业务不应无条件在 onPause 停止所有画面更新。

延伸追问 ​

onTopResumedActivityChanged 也不是资源绝不被抢占的保证,必须处理设备断开和资源失效。

内容来源 ​

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