diff options
author | 2016-11-18 01:47:08 +0000 | |
---|---|---|
committer | 2016-11-18 01:47:08 +0000 | |
commit | 428d4847d4ab5ee69f17c69c9b3375fe6d885f50 (patch) | |
tree | 7671b8a1a2e9ef4db21694dd7b66a32b725f7544 | |
parent | 1b4b23e93e2e0d194e82ce6175526346c6a16a01 (diff) | |
parent | f053fc7133866babf61913e01a6d8a6df9e1c620 (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.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 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--) { |