views:

267

answers:

3

How do I unsubscribe a LocationListener from recieving updates from the LocationManager?

Here is how I'm setting it up

mLocationManager = (LocationManager)this.getSystemService(LOCATION_SERVICE);
mListener = new LocationListener() {
    public void onLocationChanged(Location location) {
        Log.i("LocationListener", "Logging Change");
    }

}

mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
                5000, 1, mListener);

After I have exited the the view that created the LocationListener I am still getting log messages in the LogCat window.

I understand that this is because I am orphaning the listener but I cannot see any destory method on the LocationListener nor can I see any "remove listener" style methods on the LocationManager object.

+1  A: 

Call removeUpdates on LocationManager, passing your location listener.

mbaird
WOW, temporary blindness on my part...
Greg B
+1  A: 

I think removeUpdates should help.

mLocationManager.removeUpdates(mListener)

http://dev.android.com/reference/android/location/LocationManager.html#removeUpdates%28android.location.LocationListener%29

matekm
+1  A: 
mLocationManager.removeUpdates(mListener);
Chiwai Chan