diff options
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityManagerService.java | 4 | ||||
| -rw-r--r-- | services/core/java/com/android/server/am/ContentProviderRecord.java | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 95a08677bf06..01858a456277 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -15008,7 +15008,7 @@ public final class ActivityManagerService extends ActivityManagerNative ContentProviderRecord cpr = app.pubProviders.valueAt(i); final boolean always = app.bad || !allowRestart; boolean inLaunching = removeDyingProviderLocked(app, cpr, always); - if ((inLaunching || always) && !cpr.connections.isEmpty()) { + if ((inLaunching || always) && cpr.hasConnectionOrHandle()) { // We left the provider in the launching list, need to // restart it. restart = true; @@ -15152,7 +15152,7 @@ public final class ActivityManagerService extends ActivityManagerNative for (int i = mLaunchingProviders.size() - 1; i >= 0; i--) { ContentProviderRecord cpr = mLaunchingProviders.get(i); if (cpr.launchingApp == app) { - if (!alwaysBad && !app.bad && !cpr.connections.isEmpty()) { + if (!alwaysBad && !app.bad && cpr.hasConnectionOrHandle()) { restart = true; } else { removeDyingProviderLocked(app, cpr, true); diff --git a/services/core/java/com/android/server/am/ContentProviderRecord.java b/services/core/java/com/android/server/am/ContentProviderRecord.java index a37249da39fd..dceadf453c28 100644 --- a/services/core/java/com/android/server/am/ContentProviderRecord.java +++ b/services/core/java/com/android/server/am/ContentProviderRecord.java @@ -139,6 +139,10 @@ final class ContentProviderRecord { return (externalProcessTokenToHandle != null || externalProcessNoHandleCount > 0); } + public boolean hasConnectionOrHandle() { + return !connections.isEmpty() || hasExternalProcessHandles(); + } + void dump(PrintWriter pw, String prefix, boolean full) { if (full) { pw.print(prefix); pw.print("package="); |