summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Olawale Ogunwale <ogunwale@google.com> 2015-04-24 17:42:58 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2015-04-24 17:43:01 +0000
commitcf7d2d95adb358a628c2622b43a999d3ab784406 (patch)
treed2aca5a5b14df3e3cdba7b9563591a49bc9db15d
parent0e29681f98dad8df9f772d86a848190138245f3d (diff)
parent5ed21bd9aca01f01e2b27e2bfa031d31c775eec7 (diff)
Merge "[ActivityManager] Avoid orphan ContentProviderRecord."
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java13
1 files changed, 8 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 914d88352cc0..19353ba5811d 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -5816,17 +5816,20 @@ public final class ActivityManagerService extends ActivityManagerNative
if (app.isolated) {
mBatteryStatsService.removeIsolatedUid(app.uid, app.info.uid);
}
- app.kill(reason, true);
- handleAppDiedLocked(app, true, allowRestart);
- removeLruProcessLocked(app);
-
+ boolean willRestart = false;
if (app.persistent && !app.isolated) {
if (!callerWillRestart) {
- addAppLocked(app.info, false, null /* ABI override */);
+ willRestart = true;
} else {
needRestart = true;
}
}
+ app.kill(reason, true);
+ handleAppDiedLocked(app, willRestart, allowRestart);
+ if (willRestart) {
+ removeLruProcessLocked(app);
+ addAppLocked(app.info, false, null /* ABI override */);
+ }
} else {
mRemovedProcesses.add(app);
}