I have an Activity with TextView that I am trying to update from different thread. To do that i pass TextView to the "updater" thread onCreate(..) .. txtStatus = (TextView)this.findViewById(R.id.status); // start udp server as separate thread and pass TextView to that thread to print text messages from udp socket
new Thread(new TelemetryServer(txtStatus)).start(); //see thread code below As a result i have thread error, even though "updater" is synchronized: ERROR/UDP(282): android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. Any other ideas how to solve this problem? Tnank you, -V public class TelemetryServer implements Runnable { public static final String SERVERIP = "127.0.0.1"; // 'Within' the emulator! public static final int SERVERPORT = 2222; private TextView m_view; private DatagramSocket socket; private boolean loop; private synchronized void update( String msg) { m_view.append("\n"); m_view.append(msg); } public TelemetryServer(TextView _view) { m_view = _view; loop = true; } public void run() { try { InetAddress serverAddr = InetAddress.getByName(SERVERIP); Log.d("UDP", "S: Connecting..."); socket = new DatagramSocket(SERVERPORT, serverAddr); Log.i("TelemetryServer", "started"); while(loop) { byte[] buf = new byte[1024]; DatagramPacket packet = new DatagramPacket(buf, buf.length); socket.receive(packet); update(new String(packet.getData())); } } catch (Exception e) { Log.e("UDP", "S: Error", e); } // end of try Log.d("UDP", "S: Done."); socket.close(); } } -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en