input dispatching timeout
主线程耗时超过5s且有下一个输入事件在卡顿阶段输入,才会引发ANR。
验证不同系统下对于此类ANR的产生情况
阻塞情况/是否阻塞 | android 14 | Android13 | Android12 | Android11 | Android10 | Android9 | Android8 |
前台 输入事件后主线程阻塞8s,无其他操作 | 无 | 无 | 无 | 无 | 无 | 无 | 无 |
前台 输入事件后主线程阻塞8s,8s内再次输入事件 | 有 | 有 | 有 | 有 | 有(需多次点击>5次) | 有(需多次点击>10次) | 有(需多次点击>10次) |
前台 输入事件后主线程阻塞8s,8s内切换到后台 | 有 | 有 | 有 | 有 | 无 | 无 | 无 |
切换到后台后开始阻塞8s | 无 | 无 | 无 | 无 | 无 | 无 | 无 |
切换到后台后开始阻塞8s,并做ui刷新 | 无 | 无 | 无 | 无 | 无 | 无 | 无 |
注
- 切换到后台后,需重新获取焦点后才做ui刷新
- 系统越高,对ANR的容忍度越低