美文网首页
Android ANR发生条件及常见原因

Android ANR发生条件及常见原因

作者: 静水红阳 | 来源:发表于2020-07-27 15:55 被阅读0次

定义

ANR的全称是application not responding,意思就是程序未响应。

发生条件

  1. 主线程(UI线程)才能产生ANR

  2. 必须发生某些输入事件或者特定操作时,比如按键或者触屏等输入事件,在BroadcastReceiver或Service的各个生命周期调用函数;

  3. 下列事件响应超时,不同的context规定的上限时间不同

     a.主线程对输入事件5秒内没有处理完毕
    
     b.主线程在执行BroadcastReceiver的onReceive()函数时10秒内没有处理完毕
    
     c.主线程在Service的各个生命周期函数时20秒内没有处理完毕。
    

常见原因

  1. 耗时的网络访问
  2. 大量的数据读写
  3. 数据库操作
  4. 硬件操作
  5. 调用Thread的sleep方法,wait方法或者等待线程锁的时候

相关文章

网友评论

      本文标题:Android ANR发生条件及常见原因

      本文链接:https://www.haomeiwen.com/subject/oxwzlktx.html