【发布时间】:2011-12-10 23:44:12
【问题描述】:
我有一个线程用于维护与服务器的连接。如果用户在应用程序上退出服务(但没有退出应用程序),我需要一种方法来终止线程并确保它真的消失了。就目前而言,与服务器的连接是通过长轮询(又名 Comet 架构)完成的。如果我使用“中断”来终止线程,仍然会建立与服务器的底层连接。线程始终保留在内存中。似乎没有任何方法可以强制关闭套接字。
如果用户在退出后立即重新登录,则会与服务器建立新连接。但是,由于未释放套接字,旧连接仍处于活动状态。我发现如果我转到 Android 的设置 > 应用程序 > 管理应用程序并强制应用程序关闭并重新启动它,连接线程实际上已终止并且我再次连接到服务器没有问题。
有没有办法在退出后终止线程,使其真的被强制终止?使用 System.GC() 没有帮助。
【问题讨论】:
标签: android multithreading terminate