diff options
| author | 2016-11-18 01:33:29 +0000 | |
|---|---|---|
| committer | 2016-11-18 01:33:29 +0000 | |
| commit | 72a838e70433fdf0699e738baf37f5f0d6eb5848 (patch) | |
| tree | 12df804d4e0ed09d37bfdd5193979d2883c3a794 | |
| parent | 7269372d5f6a972e1878c37a07deca1e47c6f5fa (diff) | |
| parent | c02a4a46139761f1bb06540007a322dbd83fea0a (diff) | |
Merge "Schedule agentDisconnected() in handler thread"
am: c02a4a4613
Change-Id: I1e2da0be53678a791dd16be5d00caa5e712fa036
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityManagerService.java | 38 |
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 b1f08f85b5a0..24d74b1a0e12 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -6416,13 +6416,18 @@ public final class ActivityManagerService extends ActivityManagerNative 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"); @@ -16972,13 +16977,18 @@ public final class ActivityManagerService extends ActivityManagerNative 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--) { |