目录
1,ANR是什么意思?
ANR(Application Not Responding)定义 在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。所以一个流畅的合理的应用程序中不能出现anr,而让用户每次都要处理这个对话框。因此,在程序里对响应性能的设计很重要,这样系统不会显示ANR给用户。默认情况下,在android中Activity的最长执行时间是5秒,BroadcastReceiver的最长执行时间则是10秒。
2,什么是ANR
雅诗兰黛Advanced Night Repair 简称ANR,棕色小瓶子的奇迹~
即时修护:每天使用可加强肌肤自然修护能力,持续修复肌肤日积月累因紫外线、环境污染、生活压力等因素造成的各项问题,持续使用会预防衰老,预防细纹和皱纹。
肤色均匀:持续使用可舒缓每日肌肤所承受的各项刺激,补充抗氧化物质,可淡化疤痕、痘印痕,匀亮肤色。
立即保湿:经过时间验证的透明质酸保湿锁水,保持肌肤水嫩,为健康皮肤创造最佳环境。众所周知的天然"水分磁场",能锁住比自身重量多1500倍的水分。
我在使用,效果很好,改善皮肤干燥,抗氧化,提高皮肤紧致力,还有祛痘消痕的作用~~
3,Android中什么是ANR 如何避免ANR?
【答案】:ANR:Application Not Responding(应用程序无响应).当出现下列情况时,Android就会显示ANR对话框了: 对输入事件(如按键、触摸屏事件)的响应超过5秒 意向接受器(intentReceiver)超过10秒钟仍未执行完毕Android应用程序完全运行在一个独立的线程中(例如main)。这就意味着,任何在主线程中运行的,需要消耗大量时间的操作都会引发ANR。
解决方案有两种:
1. AsyncTask异步任务中,doInBackground()和onPostExecute(Result)两个方法非常重要
doInBackground() 这个方法运行在后台线程中,主要负责执行那些很耗时的操作,如移动护理系统中的网络连接、解析XML等操作。该方法必须重载。
onPostExecute(Result) 这个方法也运行于UI线程,在doInBackground(Params…)方法执行后调用,该方法用于处理后台任务执行后返回的结果。
2. 子thread + handler
4,Android ANR产生的原因和分析
ANR: ANR全称是Application No Responding,翻译过来就是程序无响应, 他是Android独有的概念。定位和解决以及避免ANR是我们需要必备的技能。
1: ANR产生的原因:
Android的UI线程响应超时就会引起ANR, 主要体现在两种情况中:
2:典型的ANR场景:
1: 当一个ANR的问题产生, 我们无法确认是ANR watchdog或者是crash。每一种类型的问题的产生都有不同的影响范围和表现形态, 一般冻屏, 一段时间后程序退出, 这种情况的产生都是ANR。在我们的AP Log中,ANR的filter字段一般有这几种: ANR low_memory slow_operation. 我们根据这些关键字搜索到发生ANR的地方:
2: ANR log日志在系统的data/anr目录下, 我们将所有的anr log日志pull出来。
3: 打开这个文件