案例:Input事件有焦点App无焦点窗口
Posted xhBruce
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了案例:Input事件有焦点App无焦点窗口相关的知识,希望对你有一定的参考价值。
案例:Input事件有焦点App无焦点窗口
案例:android 11 上,KeyEvent 事件上报,发生有焦点App无焦点窗口,报 InputDispatching TimeOut
测试手法:反复按back、home、recent或power按键,暂停等一段事件,启动另一个应用,并没有再次发送KeyEvent事件,高概率发生InputDispatching TimeOut
分析原因
IMS:InputDispatcher的焦点设置
1、dispatchKeyLocked 时确定目标检测:焦点窗口focusedWindowHandle
和焦点应用focusedApplicationHandle
2、有焦点App无焦点窗口,触发ANR检测
3、KeyEvent事件发生ANR检测,但没有再次触发KeyEvent事件
4、用户触摸另一个应用程序,pending的KeyEvent被删除,也出现聚焦窗口
5、即使此时有聚焦窗口,也发生“无焦点窗口”ANR
代码位置
解决方案
:在上报“无聚焦窗口” ANR 之前,始终检查焦点窗口是否存在processNoFocusedWindowAnrLocked
。这样,将不再依赖于发生的其他事件来确保 ANR 正常运行。
google修改
以上是关于案例:Input事件有焦点App无焦点窗口的主要内容,如果未能解决你的问题,请参考以下文章