我是靠谱客的博主 标致音响,最近开发中收集的这篇文章主要介绍浅谈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. 前言2. 产生原理3. 预防方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部