Aller au contenu

F/C à la modification dans un thread


ulrar

Recommended Posts

Salut,

J'ai un petit soucis dans une activity, elle appelle une ASyncTask pour se connecter (avec un socket donc, bref), qui affiche toutes les étapes de la connexion dans un TextView (y en a un paquet).

Bref, mon algo de connexion fonctionnait impeccable dans la ASyncTask mais mettre ça dans le OnCreate ça prennait deux plombes et j'avais un ANR à chaque fois, un peu lourd. Mais ça marchais.

J'ai donc mis tout ça dans une ASyncTask que j'appelle à la fin de OnCreate(), la première chose qu'elle fait c'est afficher "Connexion .." et ça ça marche, la plus part du temps.

Ensuite le socket se connecte et elle dois afficher quelque chose mais pouf, f/c.

En fait, on dirait que ça f/c dès que j'essaye de toucher au TextView après que la méthode OnCreate se soit exécutée.

Le TextView vient d'un layout xml, et je le récupère

TextView list = (TextView) findViewById(R.id.list);

Bref, je comprend pas pourquoi ça f/c dès que j'essaye un list.append("blabla"); ?

Quand la méthode OnCreate se termine elle détruit pas l'objet puisqu'il reste à l'écran, non ?

Lien vers le commentaire
Partager sur d’autres sites

Ben il dis rien le logcat, il dis simplement qu'il utilise la taille par défaut pour construire le BufferedReader dont je me sert.

L'onglet débug me dis que le thread AsyncTask est suspendu à cause d'une RuntimeException,

sur l'instruction ThreadPoolExecutor.runWorker ligne 1086, et il m'ouvre le fichier ThreadPoolExecutor.class de je ne sais où.

Lien vers le commentaire
Partager sur d’autres sites

Okay, j'ai fini par trouver.

En fait, j'essayerais depuis un thread annèxe de modifier un objet qui appartient à l'UI Thread, ce que je n'ai visiblement pas le droit de faire.

Je suis passé par une des nombreuses méthodes qui permettent d'exécuter du code dans l'UI thread et ça marche :-)

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...