From 41d65f28c202bd405f60f7739fd2cd775bb35213 Mon Sep 17 00:00:00 2001 From: Mark Lu Date: Wed, 23 Mar 2016 19:08:44 +0800 Subject: [AM] Skip unnessary ANR when process already died. When app process been killed by AMS or lowmemkiller just before ANR report, because process record info has been cleared after received death recipient, it also cannot dump trace log because process already dead, so report ANR & show ANR UI to let user wait seems is unnecessary. (compare normal ANR case, if kill app process by command, ANR dialog will also dismissed, it seems reasonable.) To check above condition, if ANR process record killed set as true, it means process already dead & can skip report this ANR. Change-Id: I483cb02bacb10c32db80ca1097310b02abbac24d --- services/core/java/com/android/server/am/AppErrors.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/services/core/java/com/android/server/am/AppErrors.java b/services/core/java/com/android/server/am/AppErrors.java index 724f66f51ca2..ba799f2ca3d1 100644 --- a/services/core/java/com/android/server/am/AppErrors.java +++ b/services/core/java/com/android/server/am/AppErrors.java @@ -756,6 +756,9 @@ class AppErrors { } else if (app.killedByAm) { Slog.i(TAG, "App already killed by AM skipping ANR: " + app + " " + annotation); return; + } else if (app.killed) { + Slog.i(TAG, "Skipping died app ANR: " + app + " " + annotation); + return; } // In case we come through here for the same app before completing -- cgit v1.2.3-59-g8ed1b