2
我有一个线程用于维护到服务器的连接。如果用户退出应用程序的服务(但不退出应用程序),我需要一种方法来终止线程并确保它确实消失。就目前而言,通过长轮询(a.k.a,Comet体系结构)完成到服务器的连接。如果我使用“中断”来终止线程,则仍然会建立到服务器的底层连接。线程始终保留在内存中。似乎没有任何强制关闭套接字的方法。Android:终止与套接字连接的线程
如果用户在注销后立即回注,则会向服务器建立新连接。但是,由于套接字未被释放,旧连接仍处于活动状态。我发现,如果我转到Android的“设置”>“应用程序”>“管理应用程序”并强制应用程序关闭并重新启动应用程序,连接线程实际上会终止,并且我没有再次连接到服务器的问题。
是否有某种方式在签出后终止线程,以便它真的被迫终止?使用System.GC()不起作用。
对不起,但我没有指出我使用HttpClient,所以我没有直接访问套接字。我尝试使用httpClient.getConnectionManager()。shutdown()但没有帮助。 – AndroidDev
你能发布与你的问题相关的代码吗?你现在怎么试图关闭这个线程? – Jack