Android ANR

什么是ANR?

全称:Application Not Responding 应用程序无响应;

Activity、BroadcastReceiver、Service都是在主线程的;

应用程序出现下面三种情况就会出现ANR

  • Activity操作5s没有响应;
  • BroadcastReceiver操作10s没有完成;
  • Service操作20s没有返回结果;

如何避免ANR?

  1. 将主线程的耗时操作(比如:网络访问、Socket通信、查询大量SQL、复杂逻辑计算)都放到子线程中操作,然后通过hanlder.sendMessage、runOnUIThread、AsyncTask等方式更新UI,保证用户界面的流畅度。
  2. 在Activity的关键方法onCreate() onResume()里可能少的去做创建动作。

你可能感兴趣的:(Android ANR)