From 90e9b1d3dc15e97bb7ecb88289c3707fe03fb1a6 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Thu, 21 Nov 2013 12:50:01 -0800 Subject: Fix issue #11790471: Crash removed home buttons and notification bar/shade Whoops persistent processes are, well, persistent. Don't remove services from them. We'll be keeping that process record around. Change-Id: I29e9fb6f704efdf0caad5e0307a7adbb416eed3b --- services/java/com/android/server/am/ActiveServices.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/services/java/com/android/server/am/ActiveServices.java b/services/java/com/android/server/am/ActiveServices.java index 933247e..89bddc6 100644 --- a/services/java/com/android/server/am/ActiveServices.java +++ b/services/java/com/android/server/am/ActiveServices.java @@ -1847,7 +1847,7 @@ public final class ActiveServices { } } if (finishing) { - if (r.app != null) { + if (r.app != null && !r.app.persistent) { r.app.services.remove(r); } r.app = null; @@ -1930,7 +1930,9 @@ public final class ActiveServices { Slog.i(TAG, " Force stopping service " + service); if (service.app != null) { service.app.removed = true; - service.app.services.remove(service); + if (!service.app.persistent) { + service.app.services.remove(service); + } } service.app = null; service.isolatedProc = null; @@ -2032,7 +2034,7 @@ public final class ActiveServices { synchronized (sr.stats.getBatteryStats()) { sr.stats.stopLaunchedLocked(); } - if (sr.app != null) { + if (sr.app != null && !sr.app.persistent) { sr.app.services.remove(sr); } sr.app = null; -- cgit v1.1