Domanda

Ho un'attività mapView che ha un LocationListener registrati per verificare la presenza di una nuova posizione ogni due secondi. Quando si preme il pulsante Indietro per tornare alla schermata principale dell'applicazione del GPS continua a verificare la presenza di una posizione ogni due secondi. Ha l'ascoltatore non ottenere interrotto quando la Activity si ferma? Se no come posso gestire questa situazione? Al momento ho onStop() non sovrascritto.

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) { }
};
È stato utile?

Soluzione

È necessario ridefinire il metodo onPause del vostro Activity perché è sicuro di essere chiamato. Nel metodo onPause si dovrebbe annullare la registrazione del LocationListener.

A tale scopo, attraverso

locationManager.removeUpdates(yourListener);

Se si dispone di un mapView a volte avuto i problemi con la locationOverlay mantenendo un listener registrato e utilizzando il GPS, anche se il mapview era in fondo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top