2010-01-19 15 views
5

¿Cómo puedo anular la suscripción de un LocationListener para recibir actualizaciones del LocationManager?Cancelar la suscripción de LocationListener del LocationManager

Aquí es cómo me lo crea

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); 

Después de haber salido de la opinión de que la creó el LocationListener todavía estoy recibiendo mensajes de registro en la ventana LogCat.

Entiendo que esto es porque estoy huérfano al oyente pero no puedo ver ningún método de destrucción en el LocationListener ni puedo ver ningún método de estilo "eliminar oyente" en el objeto LocationManager.

Respuesta

14

Llame al removeUpdates en LocationManager, pasando su oyente de ubicación.

+0

WOW, ceguera temporal por mi parte ... –

+2

¿Hay alguna manera de hacer esto si no está almacenando el oyente como miembro? –

3

Creo que removeUpdates debería ayudar.

mLocationManager.removeUpdates(mListener) 
+2

¿Hay alguna forma de hacerlo si no está almacenando el oyente como miembro? –

+2

NO, no hay ... – matekm

6
mLocationManager.removeUpdates(mListener); 
Cuestiones relacionadas