Frage

Ich habe eine mapView Aktivität, die eine LocationListener für einen neuen Standort alle zwei Sekunden zu überprüfen registriert hat. Wenn ich die Zurück-Taste drücken weiter die GPS auf dem Hauptbildschirm der App zurück zu gehen alle zwei Sekunden für einen Standort zu überprüfen. Hat der Hörer nicht gestoppt werden, wenn der Activity aufhört? Wenn nicht, wie kann ich damit umgehen? Im Moment habe ich nicht außer Kraft gesetzt onStop().

private final LocationListener locationListener = new LocationListener() {
    public void onLocationChanged(Location location) {
        updateWithNewLocation(location);
    }

    public void onProviderDisabled(String provider) {
        //TODO do something to handle when the provider is disabled
    }

    public void onProviderEnabled(String provider) { }
    public void onStatusChanged(String provider, int status, Bundle extras) { }
};
War es hilfreich?

Lösung

Sie müssen die onPause Methode Ihrer Activity außer Kraft zu setzen, weil das sicher ist, aufgerufen werden. Im onPause Methode sollten Sie die LocationListener deregistrieren.

Sie tun dies durch

locationManager.removeUpdates(yourListener);

Wenn Sie ein mapView haben ich hatte manchmal Probleme mit dem locationOverlay einen Listener registriert und mit dem GPS zu halten, auch wenn die mapview im Hintergrund waren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top