ANR异常及traces信息解析

时间:2023-12-15 12:25:26

Application Not Responding:默认情况下,在android中Activity的最长执行时间是5秒,BroadcastReceiver的最长执行时间则是10秒。超出就会提示应用程序无响应(ANR)对话框。

三种常见类型

1:KeyDispatchTimeout(5 seconds) --主要类型

按键或触摸事件在特定时间内无响应

2BroadcastTimeout(10 seconds)

BroadcastReceiver在特定时间内无法处理完成

3:ServiceTimeout(20 seconds) --小概率类型

Service在特定的时间内无法处理完成

出现Application Not Responding的提示后,系统会将日志LOG(错误栈信息)写到到data\anr\traces.txt文件

如何解决ANR

(1)耗时的操作放入单独的线程中处理,如(联网、数据库、IO、进程间调用--如provider调用 )

(2)尽量避免在UI线程中进行密集CPU计算

(3)要避免线程死锁

http://blog.csdn.net/janronehoo/article/details/62232337