android什么是ANR,如何定位和避免

来源:互联网 发布:mac打开cmd 编辑:程序博客网 时间:2024/06/06 17:02
  • 什么ANR
  • 造成ANR的原因
  • 哪些操作是在主线程
  • 怎么解决

1.什么ANR

主线程执行了耗时操作,造成无响应的弹框的出现

2.造成ANR的原因

线程被IO操作阻塞(4.0以后网络IO不能再主线程执行)
主线程存在耗时操作

3.哪些操作是在主线程

  • activity所有生命周期都执行在主线程
  • Service默认是执行在主线程
  • 广播的Onreceve回调也是默认在主线程
  • 没有使用子线程的Looper的handlerMessage,post(Runnble)
  • Async的回调中除了doinbackground,其他都是执行在主线程

4.怎么解决

开启线程+handler,或者使用Asyctask

原创粉丝点击