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
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 @@
}
}
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 @@
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 @@
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;