diff options
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/widget/DateTimeView.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/core/java/android/widget/DateTimeView.java b/core/java/android/widget/DateTimeView.java index a22f345bb2fc..621a745053eb 100644 --- a/core/java/android/widget/DateTimeView.java +++ b/core/java/android/widget/DateTimeView.java @@ -450,8 +450,10 @@ public class DateTimeView extends TextView { public void removeView(DateTimeView v) { synchronized (mAttachedViews) { - mAttachedViews.remove(v); - if (mAttachedViews.isEmpty()) { + final boolean removed = mAttachedViews.remove(v); + // Only unregister once when we remove the last view in the list otherwise we risk + // trying to unregister a receiver that is no longer registered. + if (removed && mAttachedViews.isEmpty()) { unregister(getApplicationContextIfAvailable(v.getContext())); } } |
