Merge "onAccountsUpdated shouldn't be called back after listener unregistered"
diff --git a/core/java/android/accounts/AccountManager.java b/core/java/android/accounts/AccountManager.java
index 9ef13de..b972719 100644
--- a/core/java/android/accounts/AccountManager.java
+++ b/core/java/android/accounts/AccountManager.java
@@ -1857,12 +1857,16 @@
handler = (handler == null) ? mMainHandler : handler;
handler.post(new Runnable() {
public void run() {
- try {
- listener.onAccountsUpdated(accountsCopy);
- } catch (SQLException e) {
- // Better luck next time. If the problem was disk-full,
- // the STORAGE_OK intent will re-trigger the update.
- Log.e(TAG, "Can't update accounts", e);
+ synchronized (mAccountsUpdatedListeners) {
+ try {
+ if (mAccountsUpdatedListeners.containsKey(listener)) {
+ listener.onAccountsUpdated(accountsCopy);
+ }
+ } catch (SQLException e) {
+ // Better luck next time. If the problem was disk-full,
+ // the STORAGE_OK intent will re-trigger the update.
+ Log.e(TAG, "Can't update accounts", e);
+ }
}
}
});