2010-01-19 18 views
5

Jak zrezygnować z subskrypcji LocationListener w celu otrzymywania aktualizacji od ?Anulowanie subskrypcji elementu LocationListener za pomocą menedżera lokalizacji LocationManager

Oto jak ja jej utworzeniu

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

Po wysuną się pogląd, że stworzył LocationListener ja wciąż otrzymuję komunikaty dziennika w oknie logcat.

Rozumiem, że to dlatego, że osierocam słuchacza, ale nie widzę żadnej metody niszczenia na LocationListener ani nie widzę żadnych metod stylu "remove detector" na obiekcie LocationManager.

Odpowiedz

14

Zadzwoń pod numer removeUpdates w menedżerze lokalizacji, przekazując odbiornik lokalizacji.

+0

WOW, tymczasowy ślepota z mojej strony ... –

+2

Czy jest jakiś sposób to zrobić, jeśli nie są przechowywane słuchacza jako członka? –

3

Myślę, że powinienem pomóc removeUpdates.

mLocationManager.removeUpdates(mListener) 
+2

Czy jest jakiś sposób, aby to zrobić, jeśli nie przechowujesz odbiornika jako członka? –

+2

NIE, nie ma ... – matekm

6
mLocationManager.removeUpdates(mListener); 
Powiązane problemy