zoukankan      html  css  js  c++  java
  • Android中的ANR

    ANR的全称是Application Not Responding。触发ANR的主要原因是UI主线程被阻塞。

    以下是Android中检测ANR的位置:

    ActivityManagerService中 ANR的检测:

    broadcastTimeout

    serviceTimeout

    在broadcastreceiver的onReceive方法中不要show dialog,不要bind  a service。前者用notification替代,后者用startservice替代。

    如果你需要在broadcastreceiver中做long time的操作,那么你需要使用service。这可以保持进程活着,不会被系统认为是empty进程,直到操作结束。

    WindowManagerService中ANR的检测:

    keyEvent timeout(

    KeyWaiter.waitForNextEventTarget中,定义了dispatch timeout为5*1000

    KeyWaiter. finishedKey用于唤醒所有等待dispatch key。

    )

  • 相关阅读:
    12月4日
    12月3日
    12月2日
    12月1日
    11月30日
    11月29日
    11月28日
    11月27日
    jquery mobile-按钮控件
    ap web
  • 原文地址:https://www.cnblogs.com/lotushy/p/2289789.html
Copyright © 2011-2022 走看看