Comment puis-je arrêter GPS/suivi de localisation lors de mon Activité de fin?

J'ai une question très simple pour Android, qui affiche une carte Google Maps vue et utilise le GPS pour suivre la position (essentiellement comme):

public void onCreate(Bundle savedInstanceState) {
    //...
    mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
    //...
}

public void onResume() {
    super.onResume();
    mLocationManager.requestLocationUpdates(mProvider, 20000, 1, this);
}

public void onPause() {
    super.onPause();
    mLocationManager.removeUpdates(this);
}

public void onLocationChanged(Location location) {
    mPosition = getGeoPointForLocation(location);
    mMapController.setCenter(mPosition);
}

Et lorsque j'utilise la commande suivante pour quitter l'application (par exemple, par le biais d'un menu), le GPS garde sur le suivi de la - il semble que l'Activité est toujours en cours d'exécution:

//...
case R.id.menu_exit:
    finish();
//...

Comment puis-je arrêter le suivi GPS si cela ne fonctionne pas par la suppression de l'emplacement gestionnaire de onPause() et de l'appel de finish()? Comme ce que j'ai lu des tutoriels ou autres questions, ce devrait être la solution..

  • La commande removeUpdates est correct. Généralement, il serait préférable de remplacer onFinish() et supprimer les mises à jour là-bas. De cette façon, vous êtes plus sûr dans le cas où l'activité est détruite dans un autre moyen que le bouton de sortie. Mais puisque vous vous inscrivez le locationUpdates dans onResume, ne serait-il pas encore plus de sens à supprimer les mises à jour dans onPause()?
  • btw - ne sont pas directement liées à votre question: pour plus de fonctionnalité améliorée plus tard, si vous voulez avoir le fonctionnement de l'application intérieure et extérieure et plus précis, jetez un oeil à ce post: stackoverflow.com/questions/3145089/...
  • Je l'ai déplacé à onPause() (voir post original), mais encore le symbole GPS continue de clignoter lorsque je quitte l'application. Merci pour le lien, je vais vérifier ça!
  • L'icône GPS n'est pas retiré dans l'émulateur Android.
  • Je suis sur un vrai téléphone (HTC Desire 2.2)
InformationsquelleAutor slhck | 2010-11-01