Quels sont les moyens de communiquer entre une activité et un service sur Android?Communication entre le service et l'activité sur Android
Aujourd'hui, j'ai appris comment communiquer en envoyant un message d'intention et en répondant à l'aide de BroadcastRecevier.
Quelles sont mes autres options? Quelqu'un at-il un tutoriel/référence à ce sujet?
réponse à cette question est:
Il y a plusieurs façons pour une activité de communiquer avec un service et vice versa. Cette section décrit les différentes façons et donne des recommandations à utiliser.
5.1. Liaison d'activité au service local Si le service est démarré dans le même processus que l'activité, l'activité peut se lier directement au service. C'est un moyen de communication relativement simple et efficace.
5.2. Utilisation du récepteur Vous pouvez également utiliser des récepteurs enregistrés dynamiquement pour la communication. Par exemple, votre activité peut enregistrer dynamiquement un récepteur et le service envoie des événements correspondants.
5.3. AIDL pour les services dans un processus différent Pour lier à un service qui s'exécute dans un processus différent, vous devez utiliser l'IPC (Inter Process Communication) car les données doivent être envoyées entre différents processus. Pour cela, vous devez créer un fichier AIDL qui ressemble à une interface Java mais qui se termine par l'extension de fichier .aidl et qui est seulement autorisé à étendre d'autres fichiers AIDL.
Cette approche est requise si votre service doit être fourni à d'autres applications, sinon vous devriez préférer un service local.
5.4. Envoi de données d'intention et regroupement vers les services Le service reçoit des données du composant Android de départ et peut utiliser ces données.
5.5. Gestionnaire et Messenger Si le service doit communiquer de nouveau avec l'activité, il peut recevoir un objet de type Messenger via les données d'intention qu'il reçoit de l'activité. Si le Messenger est lié à un gestionnaire dans l'activité, le service peut envoyer des objets de type Message à l'activité.
Un Messenger est parcelable, ce qui signifie qu'il peut être transmis à un autre processus et que vous pouvez utiliser cet objet pour envoyer des messages au gestionnaire dans l'activité.
Messenger fournit également la méthode getBinder() qui permet de passer un Messenger à l'activité. L'activité peut donc envoyer des messages au service.
Merci à http://www.vogella.com/articles/AndroidServices/article.html
Oui sur google Je vais chercher pour apprendre la technique, sur ce site je cherche un conseil de personnes qualifiées sur le sujet à rechercher! :) –
souhaitez vous avoir le tutoriel le plus simple de deux communication (service <-> activité) dans le code. : D @ user1959567 – gumuruh