Aller au contenu

LocationManager.requestLocationUpdates() avec un PendingIntent


Pierre87

Recommended Posts

Salut!

J'essaye de faire une application qui tourne en tâche de fond, et qui enregistre la position géographique de mon téléphone.

Pour le provider, j'ai utilisé le PASSIVE_PROVIDER ou le NETWORK_PROVIDER.

J'en viens maintenant à la manière de garder l'application "en tâche de fond".

Jusqu'à présent, j'utilisais LocationManager.requestLocationUpdates() à l'aide d'un LocationListener.

La problème, c'est que ça nécessite que mon LocationListener soit instancié, ce qui n'est pas le cas si mon application n'est pas lancée, ou si elle a été tuée.

Pour résoudre ce problème, j'ai donc choisi de laisser tourner un Service, qui empêche mon application d'être tuée.

Ca marche très bien jusque là, sauf que mon application est lancée en permanence pour rien :P (elle se relance immédiatement si on la tue manuellement)

Je suis donc tombé sur LocationManager.requestLocationUpdates() avec un PendingIntent.

Pour le PendingIntent, j'ai donc choisi de faire un Broadcast, avec un Receiver déclaré dans mon AndroidManifest.xml

ET CA MARCHE!

A partir du moment où je suis abonné, mon application peut être tuée, elle se relancera d'elle même à la réception du Broadcast.

Mais j'ai quelques soucis:

Y a t-il un moyen de savoir à un moment donné mes "abonnements" au LocationManager?

Quelle est la durée de vie d'un abonnement à l'aide d'un PendingIntent?

(j'ai l'impression que ça reste tant que le téléphone est allumé, mais je ne suis pas sûr...)

Merci!

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...