Android开发之如何避免ANR(Keeping Your App Responsive)
demi 在 周五, 07/27/2018 - 09:35 提交
一:什么是ANR
如果应用程序不能响应用户的输入了,那么就可以说应用ANR了。
如果需要运行一个耗时较长的操作的时候,不要把这个任务放在UI线程上运行,而是单独创建一个线程运行那些操作。
以下情况会出现ANR提示对话框:
(1). 5秒内对一个输入动作没有反应。
(2). 一个BroadcastReceiver在10秒内没有完成运行。
二:如何避免ANR
在activity的关键的生命周期方法: onCreate 和 onResume方法上尽可能处理越少越好的事情。
下面列举的操作都是长时间运行的:网络工作、数据库操作、精确的计算,例如重新定制图片(应该在单独的工作线程中)、或者通过异步请求操作数据库的情况下。