用socket連接服務器的時候,需要在子線程進行網絡請求,請求完成之后可以通過Handler來處理主線程應該得到的通知(更新view)
private void StartRequestFromSocket(final int mycho) { new Thread() { public void run() { try { SendRequest(mycho); } catch (Exception e) { e.printStackTrace(); } } }.start(); } public void SendRequest(int mycho) { String sendString="sendString"; try { socket = new Socket(IpAddress, Port); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 由系統標准輸入設備構造BufferedReader對象 PrintWriter write = new PrintWriter(socket.getOutputStream()); // 由Socket對象得到輸出流,並構造PrintWriter對象 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); write.println(sendString); write.flush(); getS = in.readLine(); System.out.println("Server:" + getS); mHandler.sendEmptyMessage(mycho); } catch (UnknownHostException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } finally { try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } }