zoukankan      html  css  js  c++  java
  • Android ANR发生原因总结(zhuan)

      

    ANR(Application Not Responding) Android系统中应用无响应

    是Android系统中比较常见的问题,当出现ANR时一般情况会弹出一个带有以下文字的对话框提示:

    Activity XXX(in XXXXX) is not responding. 比如:

    粗略的来分会有两种情况导致ANR:

    第一类:dispatchTimeout 输入事件分发超时,一般是由于主线程在5秒之内没有响应输入事件。

    第二类:BroadcastReceiver没有在系统设定的时间内完成并返回。

    再细分的话ANR可能是由主线程导致也可能是由非主线程导致:

    由于主线程导致的情况:

    1.耗时网络访问

    2.当有大量数据读写操作时再请求数据读写

    3.数据库操作(比如其他大数据量应用访问数据库导致数据库负载过重时)

    4.硬件操作(比如Camera)

    5.调用thread_join() / Sleep() / Wait() 或者等待locker的时候

    6.Service binder数量达到上限

    7.在system_server中发生WatchDog ANR

    8.Service忙导致超时无响应

    由于非主线程导致的情况:

    1.非主线程持有lock,导致主线程等待lock超时

    2.非主线程终止或者崩溃导致主线程一直等待

  • 相关阅读:
    sql server 常用脚本之table操作
    sql server 常用脚本之数据库操作
    PHP 生成日历
    转 mysql 问题一则
    转 php 前端知识点
    转 nbu 知识点
    转 php python 知识点
    oralce 问题几则 ORA-19504 报错
    AWR 报告脚本实现
    转 php 框架 Php 依赖框架 后台 调用python 脚本
  • 原文地址:https://www.cnblogs.com/xu-neal/p/3896918.html
Copyright © 2011-2022 走看看