我的activity,不知道把接收放到哪里能服务器发来数据就接收到,写在主线程就会阻塞,现在异步就能收到一次而且receive.setText(i);写不到EditText里面,好像和UI冲突了public class Socket1Activity<Runnalbe> extends Activity {
    /** Called when the activity is first created. */
private EditText send=null;
private EditText receive=null;
private Button butSend=null;
Socket socket=null;
private Handler handler=new Handler();
private String i;
private String r;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        send=(EditText)findViewById(R.id.send);
        receive=(EditText)findViewById(R.id.receive);
        butSend=(Button)findViewById(R.id.btnSend);
     try{
    socket=new Socket("192.168.0.109",3456);
   }catch(Exception e){
   System.out.println("获取服务器端Socket监听端口失败!" );
   }    
  
          butSend.setOnClickListener(new butSendListener());
         HandlerThread handlerThread=new HandlerThread ("handler");
         handlerThread.start();
         MyHandler myHandler=new MyHandler(handlerThread.getLooper());
         Message msg=myHandler.obtainMessage();  
     msg.sendToTarget();
    
     
 
    }
        
     class butSendListener implements OnClickListener{
  
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String i=send.getText().toString();
try {
  PrintWriter out =new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
  out.println(i);
  send.getText().clear();
  out.flush();
 
 
 
  }catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  }
}   
     }
     
     
     
   class MyHandler extends Handler{
   public MyHandler() {
// TODO Auto-generated constructor stub
}
   public MyHandler(Looper looper){
   super(looper);
   }
   
 public void handleMessage(Message msg)
 {
 try {
   
    BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
       String i=br.readLine();
       receive.setText(i);
    //System.out.println(i);
      
      
      
   
   
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    /*try {
InputStream is=socket.getInputStream();
DataInputStream br=new DataInputStream(is);
String i=br.readLine();
if(i!=null){
receive.setText(i);
}

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/
 }
   }
     
 }