2
我有一個線程用於維護到服務器的連接。如果用戶退出應用程序的服務(但不退出應用程序),我需要一種方法來終止線程並確保它確實消失。就目前而言,通過長輪詢(a.k.a,Comet體系結構)完成到服務器的連接。如果我使用「中斷」來終止線程,則仍然會建立到服務器的底層連接。線程始終保留在內存中。似乎沒有任何強制關閉套接字的方法。Android:終止與套接字連接的線程
如果用戶在註銷後立即回注,則會向服務器建立新連接。但是,由於套接字未被釋放,舊連接仍處於活動狀態。我發現,如果我轉到Android的「設置」>「應用程序」>「管理應用程序」並強制應用程序關閉並重新啓動應用程序,連接線程實際上會終止,並且我沒有再次連接到服務器的問題。
是否有某種方式在簽出後終止線程,以便它真的被迫終止?使用System.GC()不起作用。
對不起,但我沒有指出我使用HttpClient,所以我沒有直接訪問套接字。我嘗試使用httpClient.getConnectionManager()。shutdown()但沒有幫助。 – AndroidDev
你能發佈與你的問題相關的代碼嗎?你現在怎麼試圖關閉這個線程? – Jack