6
我的应用程序有一些活动,它们在第一个连接一个套接字与其他活动上的服务器进行通信。该套接字在工作线程中运行。完成应用程序时关闭套接字
我的问题是:在应用程序完成后,我可以在哪里关闭此套接字?例如使用BACK按钮...
我以为关闭了上一个活动的onDestroy()
的套接字,但是这个活动可以在运行时被系统破坏,并且即使应用程序没有完成也会关闭套接字。我不想要这个。
我run()
线程处理socket连接的方法是这样的:
public void run() {
if (this.bliveclient.isConnected()){
try {
//...
while (running) {
//waiting for input data and do something...
}
}
catch (IOException ex) {
//handle exception
}
finally{
try {
mySocket.close();
} catch (IOException ex) {
//handle exception
}
}
}
但finally
块永远不会被调用。
任何人都可以给我一些提示吗?
你永远不会停止'running'或线程被杀死。多个活动所需的网络处理听起来像是将它转移到服务中的好地方。 – zapl 2012-04-04 22:14:28
@zapl,TCP连接工作正常。我可以正确接收和发送数据......我唯一的问题是关闭套接字,因为服务器也需要关闭此套接字。 – amp 2012-04-04 22:27:20