我是靠谱客的博主 标致音响,这篇文章主要介绍浅谈android应用之ANR1. 前言2. 产生原理3. 预防方法,现在分享给大家,希望可以做个参考。

文章目录

  • 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.内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(97)

评论列表共有 0 条评论

立即
投稿
返回
顶部