温故而知新,系统整理一下。

1. 理解:

Application Not Responding(应用没有响应)

2. 本质原因:

程序在UI线程中对用户的操作响应执行的时间过长

3. 具体原因分类:

按键或触摸事件在特定时间内无响应(大概5S在上)
BroadcastReceiver在特定时间内无法处理完成(大概10S以上)
Service在特定的时间内无法处理完成(大概20S以上)

4. 解决

不要在UI线程中做长时间的事
耗时的操作放入单独的线程中处理
服务和广播接收器的生命周期回调方法都是UI线程中执行

——相关资料推荐
说说Android中的ANR