A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 王松松 于 2014-7-17 23:51 编辑

如题,在android中停止服务后,如何将服务中的线程也干掉{:3_63:}
  1. public class DaemonService extends Service {

  2.      private DaemonThread thread;
  3.      class DaemonThread extends Thread {
  4.           public void run()
  5.           {
  6.                runDaemon(mArgv.toArray(), mConfig);
  7.           }
  8.      }

  9.      public void onStart(Intent intent, int startId) {
  10.           thread = new DaemonThread();
  11.           thread.start();
  12.     }
  13. }
复制代码
解决办法:在线程run方法中加入可能产生中断异常的阻塞方法,如:Thread.sleep()
当需要终止线程时,只需要执行thread.interrupt( ),将可能发生中断异常编程马上发生中断异常,然后在捕获异常catch中退出线程
  1. public void run() {
  2.                                 try {
  3.                                         Thread.sleep(5000);
  4.                                 } catch (InterruptedException e) {       
  5.                                         e.printStackTrace();
  6.                                         return;//产生中断异常,退出线程
  7.                                 }
  8.                                 int newposition = position+1;
  9.                                 currentPosition = newposition%infos.size();
  10.                                 playMusic(infos,currentPosition);
  11.                         };
复制代码




0 个回复

您需要登录后才可以回帖 登录 | 加入黑马