diff options
| author | 2015-04-24 17:42:58 +0000 | |
|---|---|---|
| committer | 2015-04-24 17:43:01 +0000 | |
| commit | cf7d2d95adb358a628c2622b43a999d3ab784406 (patch) | |
| tree | d2aca5a5b14df3e3cdba7b9563591a49bc9db15d | |
| parent | 0e29681f98dad8df9f772d86a848190138245f3d (diff) | |
| parent | 5ed21bd9aca01f01e2b27e2bfa031d31c775eec7 (diff) | |
Merge "[ActivityManager] Avoid orphan ContentProviderRecord."
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityManagerService.java | 13 |
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); } |