diff options
Diffstat (limited to 'services/print')
-rw-r--r-- | services/print/java/com/android/server/print/UserState.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/services/print/java/com/android/server/print/UserState.java b/services/print/java/com/android/server/print/UserState.java index 5770c5079d94..fcc6f525ef14 100644 --- a/services/print/java/com/android/server/print/UserState.java +++ b/services/print/java/com/android/server/print/UserState.java @@ -586,6 +586,7 @@ final class UserState implements PrintSpoolerCallbacks, PrintServiceCallbacks, PrintJobStateChangeListenerRecord record = mPrintJobStateChangeListenerRecords.get(i); if (record.listener.asBinder().equals(listener.asBinder())) { + record.destroy(); mPrintJobStateChangeListenerRecords.remove(i); break; } @@ -628,6 +629,7 @@ final class UserState implements PrintSpoolerCallbacks, PrintServiceCallbacks, ListenerRecord<IPrintServicesChangeListener> record = mPrintServicesChangeListenerRecords.get(i); if (record.listener.asBinder().equals(listener.asBinder())) { + record.destroy(); mPrintServicesChangeListenerRecords.remove(i); break; } @@ -675,6 +677,7 @@ final class UserState implements PrintSpoolerCallbacks, PrintServiceCallbacks, ListenerRecord<IRecommendationsChangeListener> record = mPrintServiceRecommendationsChangeListenerRecords.get(i); if (record.listener.asBinder().equals(listener.asBinder())) { + record.destroy(); mPrintServiceRecommendationsChangeListenerRecords.remove(i); break; } @@ -1222,6 +1225,10 @@ final class UserState implements PrintSpoolerCallbacks, PrintServiceCallbacks, listener.asBinder().linkToDeath(this, 0); } + public void destroy() { + listener.asBinder().unlinkToDeath(this, 0); + } + @Override public void binderDied() { listener.asBinder().unlinkToDeath(this, 0); @@ -1239,6 +1246,10 @@ final class UserState implements PrintSpoolerCallbacks, PrintServiceCallbacks, listener.asBinder().linkToDeath(this, 0); } + public void destroy() { + listener.asBinder().unlinkToDeath(this, 0); + } + @Override public void binderDied() { listener.asBinder().unlinkToDeath(this, 0); |