企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
***** **ANR** [TOC=6] # 1. ANR的概念: ![](https://box.kancloud.cn/d651d18bb15519dea52f5413db33edaf_640x1138.jpeg) 在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。 # 2. 产生的主要原因: 在Android4.0以后,所有的耗时操作不能放在主线程中去操作,在主线程去做耗时操作就有很大的可能出现ANR; # 3. 如何避免: Android应用程序通常是运行在一个单独的线程(例如,main)里。这意味着你的应用程序所做的事情如果在主线程里占用了太长的时间的话,就会引发ANR对话框,因为你的应用程序并没有给自己机会来处理输入事件或者Intent广播。因此,运行在主线程里的任何方法都尽可能少做事情。特别是,Activity应该在它的关键生命周期方法(如onCreate()和onResume())里尽可能少的去做创建操作。潜在的耗时操作,例如网络或数据库操作,或者高耗时的计算如改变位图尺寸,应该在子线程里(或者以数据库操作为例,通过异步请求的方式)来完成。 # 4. 响应时间: Activity:5s Service:20s BroadCastReceiver:10s