今天遇到一个问题,既在一个activity中设置一个按钮,点击按钮关闭service,而service中又新开启了一个线程,每隔一秒输出一句话,但是当调用按钮实现stopService方法后,service是可以关闭,但是service中开启的线程却一直在运行,原理上来讲从service的onDestory方法中关闭当前线程即可,可即便如此,还是会报错,贴下代码:
1 stopBtn.setOnClickListener(new OnClickListener() { 2 3 @Override 4 public void onClick(View v) { 5 stopService(new Intent(MainActivity.this, MyServices.class)); 6 } 7 });
Thread thread = new Thread(){ @Override public void run() { super.run(); while(true){ Log.i("main", "hhhhhhhhhhhhhhhh"); try { sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }; @Override public int onStartCommand(Intent intent, int flags, int startId) { thread.start(); return super.onStartCommand(intent, flags, startId); } @Override public void onDestroy() { super.onDestroy(); thread.stop(); }
显示
thread.stop();这一行出错,不管是用stop还是destory都会报错。
时间: 2024-10-17 17:08:58