文章目录

  • 概述
  • 场景
  • 如何避免

概述

ANR(Application Not Responding)是指应用无响应。

Android系统对于一些事件都在在一定时间内完成,如果超过预订时间没有得到相应就会在成ANR。

ANR机制是对应用程序主线程的限制,要求主线程在限定的时间内处理完一些最常见的操作(启动服务、处理广播、处理输入), 如果处理超时,则认为主线程已经失去了响应其他操作的能力。

场景

导致ANR的场景主要有以下:

  • Service Timeout(20 seconds) —— Service在特定的时间内无法处理完成
  • Broadcast Timeout(10 seconds) ——BroadcastReceiver在特定时间内无法处理完成
  • ContentProvider Timeout——内容提供者执行超时
  • KeyDispatch Timeout(5 seconds) ——主要类型按键或触摸事件在特定时间内无响应

如何避免

将所有耗时操作,比如访问网络,Socket 通信,查询大量SQL 语句,复杂逻辑计算等都放在子线程中去,然后通过handler.sendMessage、runonUITread、AsyncTask 等方式更新UI,以确保用户界面操作的流畅度。

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

用Handler来处理UIThread和别的Thread之间的交互。

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的字样,到底Android ANR是什么呢? 其实ANR就是Application Not Responding的全称,当某个应用处于长期假死状态时An ...

  8. Android ANR 搜集

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

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

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

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

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

最新文章

  1. TensorRT深度学习训练和部署图示
  2. Celery--分布式任务队列
  3. 系统测试:单元测试相关知识笔记
  4. 【POJ - 2942】Knights of the Round Table(点双连通分量,二分图判断奇环奇圈)
  5. 组合体视图的画图步骤_(完整版)组合体视图画法教案
  6. C++【EasyX】俄罗斯方块
  7. SQL与Excel数据交互
  8. paip.提升效率---质量控制--代码风格模板化
  9. 【教程分享】2018最新pHp视频教程
  10. 两台电脑服务器文件同步,多台电脑怎么实现数据同步
  11. Python-实现(整蛊)消息批量发送
  12. mmsegmentation 训练自制数据集
  13. [文档和源码分享]C++实现的基于α-β剪枝算法的井字棋游戏
  14. 4k超清壁纸APP抓包获取所有壁纸下载地址
  15. [work] 如果看了此文你还不懂傅里叶变换,那就过来掐死我吧【完整版】
  16. 钛媒体乌镇咖荟 | 数字化改变以流量为核心的平台生态,系统性思维的价值开始显现...
  17. Qt Excel操作
  18. 一款由React Native编写的开源App--Gank
  19. 塔菲尔曲线斜率的大小_电催化中Tafel斜率与决速步
  20. 极验验证简介(待续)

热门文章

  1. 集美大学-浙大版《C语言程序设计实验与习题指导(第3版)》
  2. Inno SetUp中文繁体语言包和在脚本中使用
  3. A Large Chinese Text Dataset in the Wild | OCR数据集 | 正确下载方式
  4. OpenShift Origin 基本命令
  5. base64编码用在HTML(支持IE6、IE7、IE8)
  6. LearnOpenGL笔记——六、PBR:理论
  7. 求职经验总结与分享——写给联创工作室和信工的同学们
  8. 关系型数据库管理系统MySQL_关系型数据库存储管理
  9. http://www.rcgroups.com/forums/showpost.php?p=12678689postcount=29
  10. 2019暑假纪中欢乐游