ANR

出现类型:

1、按键或触摸事件在规定事件内未响应。

2、BroadcastReceiver在特定时间内未完成处理。

3、小概率service在特定时间内为完成处理。

  常见的超时引发的ANR

Activity: onCreate(), onResume(), onDestroy(), 
onKeyDown(), onClick()等,超时时间5sApplication: onCreate(), onTerminate()等,超时时间5sService: onCreate(), onStart(), onDestroy()等,超时时间20sBroadcastReceiver:onReceiver(),前台APP广播超时时间是10s,后台App是60s

AsyncTask: onPreExecute(), onProgressUpdate(), onPostExecute(), onCancel()等,超时5s
Mainthread handler: handleMessage(), post*(runnable r)等,超时5s

导致原因:

1、高耗时的操作,如图像变换

2、磁盘读写,数据库读写操作

3、大量的创建新对象

如何避免:

1、UI线程尽量只做跟UI相关的工作

2、耗时的操作(比如数据库操作,I/O,连接网络或者别的有可能阻塞UI线程的操作)把它放在单独的线程处理

3、尽量用Handler来处理UIThread和别的Thread之间的交互

4、解决的逻辑

(1)使用AsyncTask

  在doInBackground()方法中执行耗时操作

  在onPostExecuted()更新UI

(2)使用Handler实现异步任务

  在子线程中处理耗时操作

  处理完成之后,通过handler.sendMessage()传递处理结果

  在handler的handleMessage()方法中更新UI

  或者使用handler.post()方法将消息放到Looper中

捕获ANR异常信息:

  app在产生ANR异常后,会将异常信息写入"/data/anr/traces.txt"文件我们可以通过收集用户的这个文件,就可以来获取用户产生ANR的地方了。

转载于:https://www.cnblogs.com/yl-saber/p/7196224.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468135.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux开发板作为蓝牙音箱,USB 蓝牙适配器在ARM 开发板下的使用

4、可能出现的问题和解决方案:4.1 编译dbus 时出现:1checking for accept4... yeschecking abstract socket namespace... nochecking for pkg-config... (cached) /usr/local/bin/pkg-configchecking pkg-config is at least version 0.9.0... yescheck…

细丝极恐的华为251事件

事情的来龙去脉我就不再详细描述了,我提几个问题点,觉得有点疑惑,也是自己对这个事件的看法。1、李洪元于2005年入职华为,2018年1月离职,在2016年11月21日向公司的投诉邮箱发了一份匿名邮件,至于发邮件的东…

mysql set语句_mysql--乱码解决(6)

1.字符集介绍mysql数据库字符集包括字符集(character)和校对规则(collation)两个概念,其中字符集是用来定义mysql数据字符串的存储方式,而校对规则则是定义比较字符串的方式。2.常见字符集3.解决中文乱码思想:保持linux、服务端、库、表、客户…

Android WebView常见问题及解决方案汇总【很全很实用】

http://www.cnblogs.com/olartan/p/5713013.html转载于:https://www.cnblogs.com/genggeng/p/7196484.html

c语言中字符 12是多少,c语言中字符串的讲解(DOC可编).doc

c语言中字符串的讲解(DOC可编).doc第一部分:字符串的概念---字符串:用双引号引起来的一串字符。在C语言,系统将自动的为字符串添加一个结束标志\0 ,该结束标志不作为字符串的实际长度,但作为结束标志在内存中占有1个字节的存储空间。例如: "abc&quo…

C 语言,你真的懂递归了吗?

什么是递归?要说到递归如果不说栈的话,我觉得有点不合适,递归特点就是不断的调用同一个函数,如果这个函数没有一个递归界限,那么就是死循环了,所以讨论递归,就必须要讨论递归的界限,…

github page hexo博客gitee_利用Github和hexo搭建个人免费博客

利用Github和hexo搭建个人免费博客详细过程:概述:详细的介绍了利用github和hexo搭建免费的博客,内容详细,浅显易懂,容易上手,大家一起进来看看吧!1、配置Github相关操作:​ ①新建一…

CURL常用命令

地址 http://www.cnblogs.com/gbyukg/p/3326825.html 转载于:https://www.cnblogs.com/jason886/p/7198825.html

漫画:三种 “奇葩” 的排序算法

在算法的世界里,有许多高效率的排序算法,比如快速排序、归并排序、桶排序......它们大大提高了程序的性能。但是,也有一些比较奇葩的排序算法,它们既不能做到高效率,也没有很好的可读性。那它们存在的意义是什么呢&…

常用c语言小程序,c语言经典小程序汇总大全

网上有很多的人说编程有多么多么无聊,其实:不要管别人怎么说,别人说什么,做你自己喜欢做的事就好。坚持下来,你会发现编程的乐趣的。当然,如果你觉得学习编程语言很痛苦,坚持了一段时间后无果&a…

opencv 二值化_Python-OpenCV获取图像轮廓的图像处理方法

一、引言在《OpenCV阈值处理函数threshold处理32位彩色图像的案例》介绍了threshold 函数,但threshold 的图像阈值处理对于某些光照不均的图像,这种全局阈值分割的方法并不能得到好的效果。图像阈值化操作中,我们更关心的是从二值化图像中分离…

让你不再害怕指针.pdf

今天推荐一本书,是讲解指针的,C 语言理解指针应该算一个重点,也算是一个难点,这个pdf 文章总结非常好,推荐给大家。想获取书籍Pdf的同学,请在公众号后台回复 「指针」,希望这本书籍让你们不再害…

【Python】模块学习之ConfigParser读写配置信息

前言 使用配置文件可以在不修改程序的情况下,做到对程序功能的定制。Python 使用自带的configParser模块可以很方便的读写配置文件的信息。 configParser 支持的方法 ConfigParser模块支持很多种读取数据的方法,最常用的是get方法,通过sectio…

revit如何根据坐标进行画线_在工程设计中如何根据工艺阀门的结构与特点来进行设计呢?...

在工程设计的实践中发现,因为阀门的种类繁多,每种阀门都有自己的特点,工程设计人员,尤其年轻的设计者由于不太了解阀门的结构和特点往往选错阀门,造成设计失误。系统的了解阀门,对工程设计人员(不是阀门设计…

c语言中二维数组中产生随机数,C语言中是如何进行随机数生成的[多图]

C语言中是如何进行随机数生成的.C语言是编程人员经常会到的一款计算机编程语言,有的朋友想知道怎样使用C语言进行随机数生成,那么就快随小编一起来看看这篇C语言中是如何进行随机数生成的吧!其中不仅为大家介绍了生成随机数的函数,还提供了测试代码!同时为大家附带了随机数字生…

一文带你了解V4L2

1、什么是v4l2V4L2(Video4Linux的缩写)是Linux下关于视频采集相关设备的驱动框架,为驱动和应用程序提供了一套统一的接口规范。V4L2支持的设备十分广泛,但是其中只有很少一部分在本质上是真正的视频设备:•Video captu…

笨方法学python(本文为阅读时从此书摘录的笔记) 第五天

26. 27. and 与or 或not 非 28. 29. 30. if的下一行语句必须有缩进( 四个空格) if ... : elif ...: else: 转载于:https://www.cnblogs.com/iamjuruo/p/7470921.html

流水灯c语言实验报告心得,嵌入式流水灯实验心得体会.docx

嵌入式流水灯实验心得体会嵌入式流水灯实验心得体会篇一:嵌入式流水灯实验   实验三 GPIO输出控制实验   一、 实验目的   熟悉LPCXX系列ARM7微控制器的GPIO输入控制。   二、实验设备   ? 硬件:PC机 一台   LPC2131教学实验开发平台 一套 …

Linux 僵尸进程可以被杀死吗?

在 Unix 进程模型中,父进程和其所产生的子进程是异步运行的,所以如果子进程在结束后,会留下一些信息需要父进程使用 wait / waitpid 来接收。而如果父进程太忙了,没有调用 wait / waitpid 的话,子进程就会变成…

jstl 获取 javascript 定义的变量_前端开发大牛完整总结出了JavaScript 难点 +最新web前端开发教程...

1. 立即执行函数立即执行函数,即Immediately Invoked Function Expression (IIFE),正如它的名字,就是创建函数的同时立即执行。它没有绑定任何事件,也无需等待任何异步操作:立即执行函数function(){…}是一个匿名函数&…