diff options
| -rw-r--r-- | core/java/android/app/LoadedApk.java | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/core/java/android/app/LoadedApk.java b/core/java/android/app/LoadedApk.java index b889c8f9a81b..7754244cae8e 100644 --- a/core/java/android/app/LoadedApk.java +++ b/core/java/android/app/LoadedApk.java @@ -1396,18 +1396,6 @@ public final class LoadedApk { } public void death(ComponentName name, IBinder service) { - ServiceDispatcher.ConnectionInfo old; - - synchronized (this) { - old = mActiveConnections.remove(name); - if (old == null || old.binder != service) { - // Death for someone different than who we last - // reported... just ignore it. - return; - } - old.binder.unlinkToDeath(old.deathMonitor, 0); - } - if (mActivityThread != null) { mActivityThread.post(new RunConnection(name, service, 1)); } else { @@ -1456,7 +1444,7 @@ public final class LoadedApk { } } - // If there was an old service, it is not disconnected. + // If there was an old service, it is now disconnected. if (old != null) { mConnection.onServiceDisconnected(name); } @@ -1467,6 +1455,17 @@ public final class LoadedApk { } public void doDeath(ComponentName name, IBinder service) { + synchronized (this) { + ConnectionInfo old = mActiveConnections.get(name); + if (old == null || old.binder != service) { + // Death for someone different than who we last + // reported... just ignore it. + return; + } + mActiveConnections.remove(name); + old.binder.unlinkToDeath(old.deathMonitor, 0); + } + mConnection.onServiceDisconnected(name); } |