概述
ANR:Application Not Response(应用程序无响应),是 一种安卓中非常常见的异常。
在安卓中,如果一个app在一段时间内对用户的操作没有做出响应,系统会弹出一个对话框,即程序无响应对话框(ANR),此时用户可选择等待程序响应或者强行退出该应用,这无疑是极差的用户体验。
一、什么情况下是出现ANR异常?
1、Activity:主线程在5s内无响应
2、BroadCast :10s没有响应
3、server:20s无响应(较少出现)
通常情况,若是在主线程中做一些耗时操作,例如访问数据库,连接网络请求数据等,相应的安卓组件没有在以上规定的时间内做出相应,会导致ANR异常。想而易见的是,ANR异常会造成非常差的用户体验,用户会认为app崩了或者,手机出现问题,这无疑会导致我们损失很大一部分客户群。
二、如何解决ANR异常?
最简单且显而易见的解决方法是:new一个Thread,将耗时的容易造成ANR异常的操作封装到一个子线程中去执行,这里采用的是handler机制。
具体做法是:1、创建一个子线程,在这个子线程中进程耗时操作(访问网络,请求数据库···);
2、数据请求完成后,向handler发送消息;
3、根据请求的数据,在handler的handlerMessage()方法中做更新UI等操作。
最后
以上就是心灵美夕阳为你收集整理的Android中ANR异常的总结的全部内容,希望文章能够帮你解决Android中ANR异常的总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复