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刷新

  1. 切换到后台后,需重新获取焦点后才做ui刷新
  2. 系统越高,对ANR的容忍度越低