Loading services/core/java/com/android/server/am/ActivityManagerService.java +2 −2 Original line number Diff line number Diff line Loading @@ -15089,7 +15089,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; Loading Loading @@ -15233,7 +15233,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); services/core/java/com/android/server/am/ContentProviderRecord.java +4 −0 Original line number Diff line number Diff line Loading @@ -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="); Loading Loading
services/core/java/com/android/server/am/ActivityManagerService.java +2 −2 Original line number Diff line number Diff line Loading @@ -15089,7 +15089,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; Loading Loading @@ -15233,7 +15233,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);
services/core/java/com/android/server/am/ContentProviderRecord.java +4 −0 Original line number Diff line number Diff line Loading @@ -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="); Loading