2010-11-03 7 views
1

J'ai réussi à programmer une application qui communique avec un serveur. Je peux écrire et je peux lire. J'ai même réussi à le faire avec Java NIO. Mon problème est que j'ai une boucle sans fin tout en écoutant de nouvelles données à lire.Communication socket asynchrone dans Android avec threads

Il bloque tout le programme et je ne peux plus écrire de données.

J'ai besoin d'une solution pour que la boucle continue à fonctionner en arrière-plan en écoutant les nouvelles données à lire pendant que j'envoie des données.

Des suggestions?

+0

duplication possible de [SocketChannel n'est pas prêt] (http://stackoverflow.com/questions/4081594/socketchannel-is-not-ready) – EJP

Répondre

3

Utilisez AsyncTask. Il a été créé uniquement pour ce type de travaux (exécution de tâches d'arrière-plan longues, tout en ayant la possibilité de mettre à jour l'interface utilisateur).

0

Vous pouvez créer un thread distinct pour gérer le socket de manière asynchrone et passer des messages via un gestionnaire ou créer un service local pour gérer les communications.

Vous ne devriez jamais faire une longue attente sur le thread principal (UI).

0

Si votre boucle bloque tout le programme, il y a un problème. Je ne vois pas quelle autre réponse vous pouvez raisonnablement attendre jusqu'à ce que vous postiez du code.