我是新來的android應用程序開發。我試圖開發一個Android服務器客戶端聊天如何創建asyncTask來防止networkOnMainThreadException
爲我的第一個項目。這是客戶端的代碼。當客戶端按btnJoin
,
它將連接到服務器併發送一個字符串。我讀過很多例子,其中很多都是
看起來像這樣。我得到了networkOnMainThreadException
。我如何使asyncTask
阻止
這個問題?任何幫助將非常感激。
btnJoin = (Button) findViewById(R.id.buttonJoin);
btnJoin.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Socket socket = null;
DataOutputStream dataOutputStream = null;
DataInputStream dataInputStream = null;
try {
socket = new Socket("192.168.1.4", 9092);
dataOutputStream = new DataOutputStream(socket.getOutputStream());
dataInputStream = new DataInputStream(socket.getInputStream());
dataOutputStream.writeUTF("Hello server!");
txtIP.append(dataInputStream.readUTF() + "\n");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (dataOutputStream != null) {
try {
dataOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (dataInputStream != null) {
try {
dataInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
});
@avd感謝編輯工作,我的問題。我會適當地格式化我的下一個問題。 :D –