很多初入Android 开发的网友可能发现ANR的字样,到底Android ANR是什么呢? 其实ANR就是Application Not Responding的全称,当某个应用处于长期假死状态时Android系统 会弹出一个窗口上面写道,XXX is not responding给出两个按钮一个为force close一个为wait。

可能触发ANR的情况

1. 长时间的I/O处理,比如读写大文件,网络访问时造成的阻塞。

2. 执行耗时的运算,Android默认为超过5000ms即5秒开始弹出ANR窗口,某些应用可能首次执行时没有缓存十分耗时,可以通过Splash播放闪屏Logo等方式来延缓加载

3. Service和appWidget中也要注意多线程的使用,除非它和Activity工作在不同的进程。

避免ANR的方法

1. 单独开工作者线程,通过独立的Thread或使用类似AsyncTask的方式来处理耗时的内容。

2. 耗时的操作尽量分段处理,使用类似状态机的方法,类似Symbian 的活动对象将一个复杂的事情,分段执行。

3. UI 线程中不要处理过多的内容,比如将一个5MB的文本,让TextView去setText,要知道这种UI操作,没有什么好方法去解决的,所以Android123提示,遇到UI中需要执行复杂的操作,可以参考上面2提到的分段处理方式。

Android ANR是什么相关推荐

  1. 转 android anr 分析示例,[摘]Android ANR日志分析指南之实例解析

    前文<[摘]Android ANR日志分析指南>也摘抄了如何分析,接下来通过实例解析. 一.主线程被其他线程lock,导致死锁 waiting on <0x1cd570> (a ...

  2. Android ANR

    ANRs ("Application Not Responding"),意思是"应用没有响应". 1)什么引发了ANR? 在Android里,应用程序的响应性是 ...

  3. Android 系统(135)---Android anr 分析步骤总结

    Android anr 分析步骤总结 前言:最近经手了比较多的anr问题,声明经手不是解决,只是从log上推断造成anr的原因,以此作为根据转交给对应的人来处理. 1. ANR简介 ANR全名Appl ...

  4. android anr 产生的类型及原因

    android anr 产生的条件 android 系统中anr的本质是主线程无法响应.而导致主线程无法响应的原因大致如下: 主线程请求网络资源,数据库访问或者io访问,这些操作都是耗时操作,主线程处 ...

  5. Android ANR是什么?

    Android ANR 前言 一.ANR产生的原因 二.如何尽量避免ANR? 前言 ANR:Application Not Responding,应用程序无响应 一.ANR产生的原因 Android系 ...

  6. Android anr介绍

    1)什么引发了ANR? 在Android里,应用程序的响应性是由Activity Manager和WindowManager系统服务监视的.当它监测到以下情况中的一个时,Android就会针对特定的应 ...

  7. Android ANR 搜集

    Android ANR排查 应用层一般如下情况下需要查看log 1) 程序异常退出 , uncaused exception 2) 程序强制关闭 ,Force Closed (简称FC) 3) 程序无 ...

  8. Android ANR问题总结(非原创)

    <title>Android ANR问题总结(非原创) - Vane的博客 | Vane's Blog</title><!-- Web App Manifest --&g ...

  9. 看完这篇 Android ANR 分析,就可以和面试官装逼了!

    点击上方"何俊林",马上关注,每天早上8:50准时推送 真爱,请置顶或星标 本文转载自公号玉刚说,原创作者htkeepmoving,原文链接:https://www.jianshu ...

最新文章

  1. AutoML自动化机器学习技术深入
  2. python支持向量机框架_Netflix 内部 Python 框架 Metaflow 正式开源,可加速机器学习模型部署...
  3. .NET MVC 学习笔记(一)— 新建MVC工程
  4. Android官方开发文档Training系列课程中文版:电池续航时间优化之监测电池电量及充电状态
  5. 织梦php添加函数调用,dedecms自定义函数及实际案例调用
  6. MTK 驱动(4)---MTK Android Driver知识大全
  7. Confluence 6 选项 1 – 在 Confluence 中手动重建用户和用户组
  8. 圆为什么有360度?
  9. 【python 保存生成的图片 (plt;opencv;PIL)】
  10. 网游加速器和换ip工具的区别
  11. 两个向量叉乘表示什么意思_为什么向量积(叉乘)的这两个概念是这样的?
  12. 第三方支付-分账接口对接
  13. UEstudio 17打开中文乱码的处理解决
  14. Vue data 中随意更改一个属性,视图都会被更新吗?
  15. excel组合汇总_Excel汇总20150202
  16. For循环的简单实例
  17. IP地址是什么,IP的作用是什么?
  18. LC117 Populating Next Right Pointers in Each Node II
  19. 解读神经网络十大误解
  20. springboot启动错误: 找不到或无法加载主类

热门文章

  1. 计算机word降序排列怎么做,word中怎么进行排序的两种方法
  2. linux怎么查看tomcat错误日志,Linux下查看Tomcat运行日志
  3. Ubuntu 16的中文输入法安装 (How to install chinese input methods)
  4. java采集腾讯动漫
  5. 禁止(403)CSRF验证失败请求中止即使使用{%csrf_token%}
  6. Thinkpad T490安装Ubuntu18.04问题总结
  7. 洛谷大起义胜利的经验总结
  8. opencv文字旋转 putText旋转90°
  9. 条件单,预埋单,普通委托
  10. 解析教育机器人的综合应用能力