summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chris Tate <ctate@android.com> 2016-11-18 01:47:08 +0000
committer android-build-merger <android-build-merger@google.com> 2016-11-18 01:47:08 +0000
commit428d4847d4ab5ee69f17c69c9b3375fe6d885f50 (patch)
tree7671b8a1a2e9ef4db21694dd7b66a32b725f7544
parent1b4b23e93e2e0d194e82ce6175526346c6a16a01 (diff)
parentf053fc7133866babf61913e01a6d8a6df9e1c620 (diff)
Merge "Schedule agentDisconnected() in handler thread" am: c02a4a4613 am: 72a838e704 am: 18d0df806e
am: f053fc7133 Change-Id: Ice34a562d184b5228f7ffa2adf47a5e9c1e37a82
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java38
1 files changed, 24 insertions, 14 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 2e272cfbc506..1437c8385d42 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -6324,13 +6324,18 @@ public class ActivityManagerService extends IActivityManager.Stub
removeLruProcessLocked(app);
if (mBackupTarget != null && mBackupTarget.app.pid == pid) {
Slog.w(TAG, "Unattached app died before backup, skipping");
- try {
- IBackupManager bm = IBackupManager.Stub.asInterface(
- ServiceManager.getService(Context.BACKUP_SERVICE));
- bm.agentDisconnected(app.info.packageName);
- } catch (RemoteException e) {
- // Can't happen; the backup manager is local
- }
+ mHandler.post(new Runnable() {
+ @Override
+ public void run(){
+ try {
+ IBackupManager bm = IBackupManager.Stub.asInterface(
+ ServiceManager.getService(Context.BACKUP_SERVICE));
+ bm.agentDisconnected(app.info.packageName);
+ } catch (RemoteException e) {
+ // Can't happen; the backup manager is local
+ }
+ }
+ });
}
if (isPendingBroadcastProcessLocked(pid)) {
Slog.w(TAG, "Unattached app died before broadcast acknowledged, skipping");
@@ -16911,13 +16916,18 @@ public class ActivityManagerService extends IActivityManager.Stub
if (mBackupTarget != null && app.pid == mBackupTarget.app.pid) {
if (DEBUG_BACKUP || DEBUG_CLEANUP) Slog.d(TAG_CLEANUP, "App "
+ mBackupTarget.appInfo + " died during backup");
- try {
- IBackupManager bm = IBackupManager.Stub.asInterface(
- ServiceManager.getService(Context.BACKUP_SERVICE));
- bm.agentDisconnected(app.info.packageName);
- } catch (RemoteException e) {
- // can't happen; backup manager is local
- }
+ mHandler.post(new Runnable() {
+ @Override
+ public void run(){
+ try {
+ IBackupManager bm = IBackupManager.Stub.asInterface(
+ ServiceManager.getService(Context.BACKUP_SERVICE));
+ bm.agentDisconnected(app.info.packageName);
+ } catch (RemoteException e) {
+ // can't happen; backup manager is local
+ }
+ }
+ });
}
for (int i = mPendingProcessChanges.size() - 1; i >= 0; i--) {