Question

Dans mon application Android, un service est exécuté en arrière-plan et il enregistre les lectures GPS dans une base de données . L'utilisateur voit une activité qui le présente avec des boutons radio . J'aimerais également enregistrer le bouton radio actuellement sélectionné dans la base de données.

Comment puis-je accéder à l'objet bouton radio depuis le service?

Était-ce utile?

La solution

Une méthode simple pour ce faire (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 d'option est modifié et le service peut soit inscrire un auditeur dans les préférences, soit vérifier l'état lors de l'écriture dans la base de données.

La manière la plus compliquée d'éviter les préférences serait que le service soit démarré avec Context.startService () (afin qu'il continue à s'exécuter même si l'activité n'est pas disponible), puis pour que l'activité appelle Context.bindService (). (démarrage du service s'il n'est pas en cours d'exécution) pour renvoyer un stub IBinder avec lequel il peut communiquer. Pour cette approche, je vous recommande de consulter le Démos de l'API de service .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top