我正在开发一个需要与 TCP 服务器建立 TCP 连接的 Android 应用程序(用 Node.js 编写)
我的 Android TCP 客户端正在工作,可以来回发送消息。
我的具体问题是:
- 在 Android 中处理与服务器的 TCP 连接的最佳方法是什么?
- 如何维护连接(在 onDestroy() 等上正确关闭连接)?
- 那么使用 AsyncTask 有什么更好的方法吗(除了普通的 Thread 类,这在 Android 4.0 中是不允许的)
我在 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,并且不允许在常规线程中使用网络代码。