diff options
author | nileshagrawal@chromium.org <nileshagrawal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-12 17:05:59 +0000 |
---|---|---|
committer | nileshagrawal@chromium.org <nileshagrawal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-12 17:05:59 +0000 |
commit | b0a042ffd0b83ece0cc90e128d9f946c2d115d4c (patch) | |
tree | ed6a9f533b719cb3560e97fec40074686cf1a637 /base/android | |
parent | a19efb76fe463f1c56f1d3f51fa68dde51384d3d (diff) | |
download | chromium_src-b0a042ffd0b83ece0cc90e128d9f946c2d115d4c.zip chromium_src-b0a042ffd0b83ece0cc90e128d9f946c2d115d4c.tar.gz chromium_src-b0a042ffd0b83ece0cc90e128d9f946c2d115d4c.tar.bz2 |
Use CopyOnWriteArrayList to safely maintain a list of observers.
BUG=
Review URL: https://chromiumcodereview.appspot.com/11827041
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176553 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/android')
-rw-r--r-- | base/android/java/src/org/chromium/base/ActivityStatus.java | 11 | ||||
-rw-r--r-- | base/android/java/src/org/chromium/base/SystemMonitor.java | 1 |
2 files changed, 8 insertions, 4 deletions
diff --git a/base/android/java/src/org/chromium/base/ActivityStatus.java b/base/android/java/src/org/chromium/base/ActivityStatus.java index e728870..24b9a66 100644 --- a/base/android/java/src/org/chromium/base/ActivityStatus.java +++ b/base/android/java/src/org/chromium/base/ActivityStatus.java @@ -7,7 +7,7 @@ package org.chromium.base; import android.app.Activity; import android.os.Looper; -import java.util.ArrayList; +import java.util.concurrent.CopyOnWriteArrayList; /** * Provides information about the parent activity's status. @@ -29,9 +29,14 @@ public class ActivityStatus { // testing. private static int sActivityState; - private static final ArrayList<StateListener> sStateListeners = new ArrayList<StateListener>(); + // Use CopyOnWriteArrayList to avoid ConcurrentModificationException when a listener tries to + // remove itself while being notified of a state change. + private static final CopyOnWriteArrayList<StateListener> sStateListeners = + new CopyOnWriteArrayList<StateListener>(); - // Use this interface to listen to all state changes. + /** + * Interface to be implemented by listeners. + */ public interface StateListener { /** * Called when the activity's state changes. diff --git a/base/android/java/src/org/chromium/base/SystemMonitor.java b/base/android/java/src/org/chromium/base/SystemMonitor.java index 30f61a6..138ae28 100644 --- a/base/android/java/src/org/chromium/base/SystemMonitor.java +++ b/base/android/java/src/org/chromium/base/SystemMonitor.java @@ -4,7 +4,6 @@ package org.chromium.base; -import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; |