diff --git a/MyTracks/src/com/google/android/apps/mytracks/content/TrackDataHub.java b/MyTracks/src/com/google/android/apps/mytracks/content/TrackDataHub.java index 8ac6e915d..f63e4456d 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/content/TrackDataHub.java +++ b/MyTracks/src/com/google/android/apps/mytracks/content/TrackDataHub.java @@ -240,24 +240,22 @@ public class TrackDataHub { */ public void start() { Log.i(TAG, "TrackDataHub.start"); - synchronized (this) { - if (startedInstance != null) { - Log.w(TAG, "Already started, ignoring"); - return; - } - startedInstance = this; - - listenerHandlerThread = new HandlerThread("trackDataContentThread"); - listenerHandlerThread.start(); - listenerHandler = new Handler(listenerHandlerThread.getLooper()); - dataSources = newDataSources(); - dataSourceManager = new DataSourceManager(dataSourceListener, dataSources); - - // This may or may not register internal listeners, depending on whether - // we already had external listeners. - dataSourceManager.updateAllListeners(getNeededListenerTypes()); - loadSharedPreferences(); + if (startedInstance != null) { + Log.w(TAG, "Already started, ignoring"); + return; } + startedInstance = this; + + listenerHandlerThread = new HandlerThread("trackDataContentThread"); + listenerHandlerThread.start(); + listenerHandler = new Handler(listenerHandlerThread.getLooper()); + dataSources = newDataSources(); + dataSourceManager = new DataSourceManager(dataSourceListener, dataSources); + + // This may or may not register internal listeners, depending on whether + // we already had external listeners. + dataSourceManager.updateAllListeners(getNeededListenerTypes()); + loadSharedPreferences(); // If there were listeners already registered, make sure they become up-to-date. loadDataForAllListeners(); @@ -288,23 +286,21 @@ public class TrackDataHub { */ public void stop() { Log.i(TAG, "TrackDataHub.stop"); - synchronized (this) { - if (!isStarted()) { - Log.w(TAG, "Not started, ignoring"); - return; - } - - // Unregister internal listeners even if there are external listeners registered. - dataSourceManager.unregisterAllListeners(); - listenerHandlerThread.getLooper().quit(); - - startedInstance = null; - - dataSources = null; - dataSourceManager = null; - listenerHandlerThread = null; - listenerHandler = null; + if (!isStarted()) { + Log.w(TAG, "Not started, ignoring"); + return; } + + // Unregister internal listeners even if there are external listeners registered. + dataSourceManager.unregisterAllListeners(); + listenerHandlerThread.getLooper().quit(); + + startedInstance = null; + + dataSources = null; + dataSourceManager = null; + listenerHandlerThread = null; + listenerHandler = null; } private boolean isStarted() {