我正在开发一个Android应用程序,需要与一个TCP服务器(使用Node.js编写)建立TCP连接。
我的Android TCP客户端已经能够发送和接收消息。
我的具体问题是:
- 在Android中处理与服务器的TCP连接的最佳方法是什么?
- 如何维护连接(例如在onDestroy()中正确关闭连接)?
- 除了使用AsyncTask(不允许在Android 4.0中使用普通的Thread类)外,是否有更好的方法?
我的socket连接实现在AsyncTask中,像这样:
@Override
protected Void doInBackground(Void... params) {
try {
Log.d("TCP_MESSAGE", "Connecting...");
socket = new Socket(MY_LOCAL_IP, 8080);
dataOutput = new DataOutputStream(socket.getOutputStream());
inputstream = new InputStreamReader(socket.getInputStream());
input = new BufferedReader(inputstream);
while (!canceled) {
String message = input.readLine();
handleMessage(message);
}
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
我之所以在AsyncTask中使用连接是因为我正在使用Android 4.0,不允许在常规线程中使用网络代码。