J'essaye d'avoir une connexion bidirectionnelle entre 2 appareils, l'un sera le serveur et l'autre le client. Comme il est bidirectionnel, les deux peuvent envoyer une donnée de réception.Android IntentService appel
Je les crée dans une activité que j'ai, qui répertorie les applications installées que j'ai sur mon téléphone (filtré les applications du système). Ensuite, j'ai un adaptateur pour cette liste, où je définis un écouteur pour les éléments de cette liste. Fondamentalement, si j'appuie sur l'un des éléments de la liste, je veux envoyer un message à l'autre périphérique. Donc, si à l'intérieur de la méthode onHandleIntent() j'attends les messages, où dois-je mettre le code pour ENVOYER des messages?
EDIT: Je pourrais créer un autre service pour la partie d'envoi mais cela me ferait créer 4 services, 2 pour le client (envoyer et recevoir) et un autre 2 pour le serveur (envoyer et recevoir à nouveau).
Merci beaucoup pour votre aide! Je vais suivre votre conseil et utiliser deux IntentService différents (pour envoyer et recevoir). Peut-être qu'un jour je vais vérifier si avoir un service avec 2 threads serait plus efficace ou non. Encore une fois, merci beaucoup pour le conseil, j'étais un peu coincé. Je suis nouveau ici et je ne sais pas si mes votes vous aideront, mais j'espère qu'ils le font :) –
Je n'ai pas encore testé, mais je pense qu'il pourrait y avoir quelques problèmes avec l'utilisation de deux IntentServices (et l'établissement de la connexion dans le Méthode onStartCommand - Sockets et flux objets -), car il me fera avoir deux ensembles de sockets pour les mêmes deux appareils. Je ne sais pas si cela sera problématique. Alors peut-être qu'un service avec deux threads à l'intérieur serait mieux, parce que de cette façon, vous pourriez utiliser le même socket et les flux d'objets. –
J'ai également eu un service qui a fait une sorte de lecture/écriture simultanée à un flux. Ce que j'ai fait, c'est avoir un Service (pas IntentService) qui génère un Thread d'écoute au démarrage, et le tue lorsqu'il est arrêté. Quelque chose comme ça peut ou peut ne pas fonctionner pour vous, mais cela a du sens pour moi :) – Bob