2014-09-05 5 views
0

J'ai eu des problèmes pour placer une bonne architecture sur mon application. Il doit recevoir des mises à jour GPS régulières (j'ai créé l'auditeur, avec les bons paramètres pour la fréquence de mise à jour). Le problème se pose lorsque j'essaie de déterminer où installer ce code: il doit être placé dans quelque chose comme un service, parce que je veux le garder en arrière-plan, mais il semble que les services continuent de tourner sur le thread principal. En outre, je dois être sûr que, même si l'application est tuée, je ne perds pas les mises à jour GPS.Android demande GPS permanente

Ainsi, les solutions semblent être les suivantes:

  1. service (peut-il être exécuté sur fond?) Qui enregistre un écouteur, et continue à fonctionner. Une sorte d'alarme qui met en place ce service si elle a tué
  2. Une alarme, qui se déclenche toutes les X minutes, inscrivez-vous à l'auditeur, attend sa réponse, et arrête d'attente pour le signal suivant

Quelle stratégie meilleur? Y at-il une bonne pratique dans Android quand j'ai besoin de faire de longues tâches (comme recevoir des données périodiques indéfiniment)?

Nous vous remercions à l'avance

Répondre

0

Vous pouvez exécuter votre service dans son propre processus. Voir « Processus de service » dans http://developer.android.com/guide/components/processes-and-threads.html

Vous organisez un processus supplémentaire pour votre service dans le manifeste, voir le android:process attribut de la balise service dans http://developer.android.com/guide/topics/manifest/service-element.html

+0

Il assure que si mon service faire des choses intensives, il ne montrera pas le dialogue de "Cette application ne répond pas. Voulez-vous la fermer?"? – Isaac