2010-06-09 19 views
2

J'ai besoin de mettre à jour l'emplacement par GPS en arrière-plan, même lorsque le téléphone est en veille. J'envisage d'utiliser AlarmManager pour diffuser une Intention, puis un destinataire appellera requestLocationUpdates() sur LocationManager. Mais je ne suis pas sûr qu'il est garanti que l'emplacement GPS sera mis à jour lorsque le téléphone est en veille et qu'une intention sera diffusée si j'ai enregistré un PendingIntent lors de l'appel requestLocationUpdates()?Android: l'emplacement GPS se met à jour lorsque le téléphone portable est en veille?

grâce,

Répondre

-1

Les GPS ne fonctionnent pas lorsque l'écran est éteint! Vous pouvez définir une alarme pour votre application, mais pour obtenir la position GPS, vous devez activer l'écran.

Mis à jour à 23/08/2016:

S'il vous plaît être noter, cette réponse est vieux et cette information ne réelle pour les versions de dernière os.

+2

J'ai utilisé le GPS avec l'écran éteint pendant une longue période. Pourriez-vous fournir des preuves (par exemple, un lien vers la documentation), qui étaye cette affirmation? Merci – Martin

+0

Oui, je peux confirmer que le verrouillage GPS et la requête est toujours possible lorsque le téléphone est en veille: -] –

0

Vous pouvez utiliser un service. Un service ne possède pas d'interface utilisateur visuelle, mais fonctionne en arrière-plan pour une durée indéfinie. Par exemple, un service peut lire de la musique de fond lorsque l'utilisateur s'occupe d'autres questions, ou il peut extraire des données sur le réseau ou calculer quelque chose et fournir le résultat aux activités qui en ont besoin. Chaque service étend la classe de base Service. Si votre téléphone se met en veille, le service continuera son travail en arrière-plan. N'oubliez pas de démarrer le service en utilisant startService() au lieu de bindService() sinon, lorsque l'activité qui démarre le service se met en veille, le service sera arrêté.

+0

Je ne voulais pas utiliser le service car le processus de service pouvait être détruit par le système. – wei

+0

Vous pourriez en faire un service de premier plan. –

+0

c'est un peu exagéré de garder un 'Service' en cours d'exécution pour y parvenir, mieux vaut utiliser' AlarmManager' – slinden77