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=");  |