Fix issue 1153.

In TrackListActivity, unregister listener in onPause.
This commit is contained in:
Jimmy Shih
2012-09-19 17:56:30 -07:00
parent 02d9d929b2
commit 7e2fa82f3c
2 changed files with 4 additions and 2 deletions
@@ -419,6 +419,7 @@ public class TrackListActivity extends FragmentActivity implements DeleteOneTrac
protected void onPause() {
super.onPause();
trackController.stop();
trackDataHub.unregisterTrackDataListener(trackDataListener);
}
@Override
@@ -58,7 +58,8 @@ public class TrackDataManager {
public void registerListener(
TrackDataListener listener, EnumSet<TrackDataType> trackDataTypes) {
if (listenerToTypesMap.containsKey(listener)) {
throw new IllegalStateException("Listener is already registered");
Log.w(TAG, "Tried to register a listener that is already registered. Ignore.");
return;
}
listenerToTypesMap.put(listener, trackDataTypes);
for (TrackDataType trackDataType : trackDataTypes) {
@@ -74,7 +75,7 @@ public class TrackDataManager {
public void unregisterListener(TrackDataListener listener) {
EnumSet<TrackDataType> removedTypes = listenerToTypesMap.remove(listener);
if (removedTypes == null) {
Log.w(TAG, "Tried to unregister a listener that is not registered.");
Log.w(TAG, "Tried to unregister a listener that is not registered. Ignore.");
return;
}