[Android]ANR的一些东西

1、什么是ANR:

Application Not Responding应用程序无响应。

2、造成ANR的主要原因

应用程序的响应性是由Activity Manager和WindowManager系统服务监视的,Activity最长5秒,广播最长10秒,超过上述时间可能会发生ANR。

主线程被IO操作阻塞、主线程中存在耗时操作

Android中在主线程的操作:Activity的所有生命周期回调、Service、BroadcastReceiver的onReceiver回调、没有关联子线程的looper的Handler的handleMessage、post(runnable)、AsyncTask除doInBackground()的其他方法。

3、解决ANR

使用AsyncTask处理耗时操作、使用Thread/HandlerThread提高优先级、使用handler来处理工作线程的耗时任务、Activity的onCreate和onResume尽量不要做耗时操作

发表评论

电子邮件地址不会被公开。 必填项已用*标注