美文网首页
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