Comment arrêter l'emplacement de manager?

Ne sais pas pourquoi, mais parfois LocationManager est encore à travailler même après la fermeture de l'application.

J'appelle startGPS() dans onCreate-Methode dans une Activité (un seul, laissez-moi l'appeler StartActivity).

protected void startGPS()
{    
 try
 {           
     lmanager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
     lmanager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);
     lmanager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
 }
 catch(Exception e)
 {
     e.printStackTrace();
 }
}

Et si cette activité sera détruit (donc, lorsque l'application sera fermée), j'appelle endGPS()

public void endGPS()
{

 try
 {           
     lmanager.removeUpdates(this);
     lmanager=null;
 }
 catch(Exception e)
 {
  e.printStackTrace();
 }
}

Des idées, des suggestions, qu'ai-je fait de mal?!

  • Schwiz la réponse semble être la solution la plus probable. Pour confirmer, ajouter un journal de débogage de l'entrée à votre endGPS() la méthode et voir si elles sont appelées lorsque l'application est fermée par l'examen de LogCat dans Eclipse.
  • Comment allez-vous déterminer que "LocationManager est encore à travailler même après la fermeture de l'application"? Aussi, je suis nerveux au sujet de ce que vous les appelez requestLocationUpdates() deux fois pour le même objet écouteur.
  • Je peux voir le gps l'icône dans la barre d'état. Dois-je utiliser deux différents auditeurs?! Je viens de lire ", Vous pouvez aussi demander de l'emplacement des mises à jour à partir à la fois le GPS et l'Emplacement du Réseau du Fournisseur en appelant requestLocationUpdates() deux fois—une fois pour NETWORK_PROVIDER et une fois pour GPS_PROVIDER." ici, developer.android.com/guide/topics/location/...
InformationsquelleAutor Tima | 2010-11-16