Questa eccezione viene sollevata quando si cerca di invocare del codice che dovrebbe essere eseguito nel UI Thread, da un thread diverso. In particolare alla riga 49 del tuo file "MainActivity.java" stai facendo qualcosa che richiede di essere eseguito nel UI Thread (ad esempio, una banalissima Toast.makeText() o molto probabilmente quell'istruzione "et.setText(Integer.toString(st));"), ma tu non sei nell'UI Thread, sei in un tuo thread (ClientThread, per la precisione).
Non puoi accedere all'interfaccia utente (UI) da un thread esterno... l'interfaccia utente è governata dal UI Thread.
Se vuoi modificare l'interfaccia devi far passare l'azione dentro al UI Thread. Questo è un modo:
codice:tuaActivity.runOnUiThread(new Runnable() { public void run() { et.setText( Integer.toString(st) ); } });
Dove "tuaActivity" è un riferimento alla tua Activity. Ovviamente l'oggetto "et" deve essere dichiarato "final".
Io, sinceramente, preferisco far richiamare un metodo della Activity stessa che si occupa di fare gli aggiornamenti.
Ciao.![]()



Rispondi quotando