Android中ANR异常的总结

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等操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值