外观
多窗口中是否只有一个 Activity 处于 RESUMED 状态?
标准回答
Android 10 及之后支持 multi-resume,多个可见且可聚焦的顶部 Activity 可以同时处于 RESUMED,因此不能用 onResume 唯一判断谁正在接收用户操作。可见性、生命周期、窗口焦点和 top-resumed 是不同维度。窗口焦点可以通过相应焦点回调判断;相机等独占资源需要结合 onTopResumedActivityChanged、资源可用性和异常回调处理。PiP 等不可聚焦情形可能进入 PAUSED,但仍然可见,业务不应无条件在 onPause 停止所有画面更新。
延伸追问
onTopResumedActivityChanged 也不是资源绝不被抢占的保证,必须处理设备断开和资源失效。
内容来源
- Android Framework 知识手册 · 原条目
3-3