2009-03-19 9 views
4

Dans mon application Android, un service s'exécute en arrière-plan et enregistre les relevés GPS dans une base de données. L'utilisateur voit une activité qui lui présente des boutons radio. Je voudrais également enregistrer leur bouton radio actuellement sélectionné dans la base de données.Android: accès aux valeurs des boutons radio d'un service

Comment puis-je accéder à l'objet bouton radio à partir du Service?

Répondre

2

Une méthode simple pour cela (en supposant que votre service s'exécute dans le même processus que l'activité) consiste à utiliser un fichier de préférences partagé. L'activité peut écrire dans le fichier de préférences chaque fois qu'un bouton radio est modifié, et le service peut enregistrer un écouteur sur les préférences ou vérifier l'état lors de l'écriture dans la base de données. Le moyen le plus compliqué qui évite les préférences serait que le service soit démarré avec Context.startService() (afin qu'il reste en cours d'exécution même si l'activité n'est pas présente), puis que l'activité appelle Context.bindService () (démarrage du service s'il n'est pas en cours d'exécution) pour renvoyer un bout IBinder avec lequel il peut communiquer. Pour cette approche, je vous recommande de regarder le Service API Demos.

Questions connexes