概述
文章目录
- 1. 前言
- 2. 产生原理
- 3. 预防方法
1. 前言
更多内容请查看android生态之应用篇
由于ANR理解比较简单,这边就只以它产生原理,预防方法两个方面进行说明。
2. 产生原理
所谓ANR,即Application Not Respond的缩写,产生这个异常的最根本原因是由于UI线程阻塞时间过长,导致按键,广播,服务的事件在规定的时间内无法响应导致的。为啥我们经常会提到说不要在UI线程进行耗时操作也就是这个原因,虽然耗时操作不一定会使你的程序直接崩溃,但是这样做可能会导致ANR的问题,降低了android程序的稳定性。
3. 预防方法
我们可能会了解到ANR的产生有以下几种类型:
(1). KeyDispatchTimeout(5 seconds) --按键或触摸事件在特定时间内无响应
(2). BroadcastTimeout(10 seconds) --BroadcastReceiver在特定时间内无法处理完成
(3). ServiceTimeout(20 seconds) --小概率类型 Service在特定的时间内无法处理完成
根据第二节的内容可知,其实预防ANR往简单来说也就一句话的事情:不要在UI线程进程耗时操作。
具体实现简单来说就是耗时操作新开一个线程进行,然后通过Handler这个桥梁进行线程间通信,最终实现更新UI操作。
说的比较简单,如有疑问,可在评论下方留言。
最后
以上就是标致音响为你收集整理的浅谈android应用之ANR1. 前言2. 产生原理3. 预防方法的全部内容,希望文章能够帮你解决浅谈android应用之ANR1. 前言2. 产生原理3. 预防方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复