当前位置: 代码迷 >> Android >> 请问一个关于阻塞线程的终止有关问题
  详细解决方案

请问一个关于阻塞线程的终止有关问题

热度:45   发布时间:2016-04-28 08:03:33.0
请教一个关于阻塞线程的终止问题
线程中,while(true)循环中,accept或者recieve监听,当外部网络断开后,有没有办法终止这个线程?
我打算在Service中判断,满足条件后,就重启这个Service自己,因为Service中启动的线程,所以Service停止的时候,线程也终止了。大家有没有更好的办法终止这个阻塞线程?因为如果不终止的话,下次连接上网络后启动线程,可能会端口被占用。内存也因为线程没有退出来,而越用越多。

------解决方案--------------------
断网时做标记,然后在线程里面对标记做判断断网时就return;
------解决方案--------------------
你启动多线程时,thread应该要保存起来,然后收到断网通知后,把这些thread都interrupt(),interrupt只是解除socket的阻塞,并不是终止,因此你会捕获一个interruptException,并在其中,做一些额外的处理,然后socket.close或者关闭当前线程。
------解决方案--------------------
设置标记  在循环里面读取标记
另外  你结束Service是结束不了线程的  除非你结束整个进程
  相关解决方案