App Mantiene GPS Pinging
-
28-09-2019 - |
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) { }
};
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.