ANR

主要是ActivityManagerService和ActiveServices中,以静态变量的方式定义

InputDispatching Timeout:5 秒内无法响应屏幕触摸事件或键盘输入事件。

BroadcastQueue Timeout :在执行前台广播(BroadcastReceiver)的onReceive()函数时 10s 没有处理完成,后台为 60s。

Service Timeout :前台服务 20s 内,后台服务在 200s 内没有执行完毕。

ContentProvider Timeout :ContentProvider的 publish 在 10s 内没进行完。

ANR是怎么触发的

在执行响应时间,广播这些操作时,系统会用handle发送一个延时消息,当操作执行完了就移除这个消息,如果在指定的时间操作没有被执行完,这个消息就会被发送,触发ANR。

ANR排查

ANR问题解决

Last Updated: 1/9/2024, 11:22:13 AM