什么是ANR:
Application Not Responding;
应用程序无响应弹出的对话框;
应用程序的响应是由Activity Manager和Window Manager监视的;
一般activity5秒无响应或者notifcation10秒没反应或者没有响应结束就会弹出ANR;
造成ANR的主要原因:
主线程被阻塞(4.0以后不允许在主线程中执行网络IO操作);
主线程中存在耗时操作;
如何避免ANR:
使用AsyncTask处理耗时操作;
使用Thread和HandlerThread提高优先级;
使用Handler来处理工作线程的耗时操作;
Activity的onCreate和onReseme回调中尽量避免耗时代码;