diff options
| -rw-r--r-- | services/core/java/com/android/server/am/BroadcastQueue.java | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/am/BroadcastQueue.java b/services/core/java/com/android/server/am/BroadcastQueue.java index ea90db3f5968..9a7634edd81b 100644 --- a/services/core/java/com/android/server/am/BroadcastQueue.java +++ b/services/core/java/com/android/server/am/BroadcastQueue.java @@ -1457,10 +1457,17 @@ public final class BroadcastQueue { return; } - Slog.w(TAG, "Timeout of broadcast " + r + " - receiver=" + r. receiver + // If the receiver app is being debugged we quietly ignore unresponsiveness, just + // tidying up and moving on to the next broadcast without crashing or ANRing this + // app just because it's stopped at a breakpoint. + final boolean debugging = (r.curApp != null && r.curApp.debugging); + + Slog.w(TAG, "Timeout of broadcast " + r + " - receiver=" + r.receiver + ", started " + (now - r.receiverTime) + "ms ago"); r.receiverTime = now; - r.anrCount++; + if (!debugging) { + r.anrCount++; + } ProcessRecord app = null; String anrMessage = null; @@ -1500,7 +1507,7 @@ public final class BroadcastQueue { r.resultExtras, r.resultAbort, false); scheduleBroadcastsLocked(); - if (anrMessage != null) { + if (!debugging && anrMessage != null) { // Post the ANR to the handler since we do not want to process ANRs while // potentially holding our lock. mHandler.post(new AppNotResponding(app, anrMessage)); |