diff options
Diffstat (limited to 'src/com/cyanogenmod/lockclock/weather/WeatherSourceListenerService.java')
-rw-r--r-- | src/com/cyanogenmod/lockclock/weather/WeatherSourceListenerService.java | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/com/cyanogenmod/lockclock/weather/WeatherSourceListenerService.java b/src/com/cyanogenmod/lockclock/weather/WeatherSourceListenerService.java index 4bc816a..be3b9f8 100644 --- a/src/com/cyanogenmod/lockclock/weather/WeatherSourceListenerService.java +++ b/src/com/cyanogenmod/lockclock/weather/WeatherSourceListenerService.java @@ -32,6 +32,7 @@ public class WeatherSourceListenerService extends Service private static final String TAG = WeatherSourceListenerService.class.getSimpleName(); private static final boolean D = Constants.DEBUG; private Context mContext; + private volatile boolean mRegistered; @Override public void onWeatherServiceProviderChanged(String providerLabel) { @@ -65,15 +66,17 @@ public class WeatherSourceListenerService extends Service final CMWeatherManager weatherManager = CMWeatherManager.getInstance(mContext); weatherManager.registerWeatherServiceProviderChangeListener(this); + mRegistered = true; if (D) Log.d(TAG, "Listener registered"); return START_STICKY; } @Override public void onDestroy() { - final CMWeatherManager weatherManager = CMWeatherManager.getInstance(mContext); - weatherManager.unregisterWeatherServiceProviderChangeListener(this); - if (D) Log.d(TAG, "Listener unregistered"); + if (mRegistered) { + final CMWeatherManager weatherManager = CMWeatherManager.getInstance(mContext); + weatherManager.unregisterWeatherServiceProviderChangeListener(this); + } } @Override |