public class MyThread implements Runnable {
List<Data> data;
DatagramSocket socket;
DatagramPacket reciveData;
@Override
//在run方法里一直循环监听数据,并处理,处理完了之后并发送给Activity
public void run() {
//这里是获取得到的数据,并且根据得到的数据类型进行不同的处理
int command=reciveData.getCommand();
while(true){
switch(command){
//在接受到信息之后把数据存入Data,
            //难点是这里:还要把数据传送给MyActivity,MyActivity刷新UI,问题是如何传信息给MyActivity?
case REVIVE_DATA:
data.add(reciveData.getData());
}
}
}

}
//在这个Activity创建个MyThread实例,开始线程,然后线程发送消息过来,MyActivity刷新界面
public class MyActivity extends Activity{
MyThread mythread=new MyThread();
mythread.start();
}socketjava

解决方案 »

  1.   

    这个很简单,方法如下:
    1  在窗体中写一个成员如下:
    Handler h = new Handler() {
    @Override
    public void handleMessage(Message msg) {
    switch(msg.what) {
    case 0:///这里是主线程运行的地方
    break;
    }
    super.handleMessage(msg);
    }
    };
    2 在线程中调用这个:
    Message m = new Message();
    m.what = 0;//识别码
    m.obj = xxx;// 需要夹带的数据
    h.sendMessage(m);
      

  2.   

    用 handler   各种百度 就知道了
      

  3.   

    用handler就行,用回调方法也行,反正很多种方法的
      

  4.   

    主线程建Handle类,开线程循环发送小心给建的Handle对象,所有处理UI显示刷新的操作在Handle对象里实现。