本帖最后由 王松松 于 2014-7-17 23:51 编辑
如题,在android中停止服务后,如何将服务中的线程也干掉{:3_63:}
- public class DaemonService extends Service {
- private DaemonThread thread;
- class DaemonThread extends Thread {
- public void run()
- {
- runDaemon(mArgv.toArray(), mConfig);
- }
- }
- public void onStart(Intent intent, int startId) {
- thread = new DaemonThread();
- thread.start();
- }
- }
复制代码 解决办法:在线程run方法中加入可能产生中断异常的阻塞方法,如:Thread.sleep()
当需要终止线程时,只需要执行thread.interrupt( ),将可能发生中断异常编程马上发生中断异常,然后在捕获异常catch中退出线程
- public void run() {
- try {
- Thread.sleep(5000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- return;//产生中断异常,退出线程
- }
- int newposition = position+1;
- currentPosition = newposition%infos.size();
- playMusic(infos,currentPosition);
- };
复制代码
|
|