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