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/...
Vous devez vous connecter pour publier un commentaire.
Est-il possible que votre activité n'est pas d'être détruit? c'est à dire: vous appuyez sur le bouton home. Déplacez votre gps start/stop pour
onStart
etonPause
.Vous devez appeler la méthode
removeUpdates
à l'intérieur de la méthodeonPause
:L'émulateur ne jamais se débarrasser de l'icône GPS une fois chargé. Donc, sur un émulateur, vous ne pouvez pas utiliser l'icône GPS comme un test pour savoir si le GPS est toujours en cours d'exécution. Sur un périphérique, cependant, l'icône doit disparaître.
Je le ferais. Je ne sais pas si
removeUpdates()
va supprimer à la fois, ou même si les deux demandes sont enregistrés auprès de l'unique auditeur.Je vois son été un moment depuis ce post, mais il a peut-être aider certains corps d'autre. J'utilise: removeUpdates(ce), parce que mon écouteur de son activité où j'en œuvre de location manager, vous devez indiquer votre écoute.
J'utilise: locationManager.removeUpdates (: locationListener); Son Travail