我如何完全杀死一个Android线程?

我有一个有自己的线程运行在后台的服务。 我想杀死包括线程在内的服务。

我创build了这样的线程并运行它。

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(); } } 

我该如何杀死服务和线程呢? 我不必担心数据安全。

Solutions Collecting From Web of "我如何完全杀死一个Android线程?"

杀死线程,我想你可以这样做:

 myService.getThread().interrupt(); 

注意:方法Thread.stop()已被弃用

编辑 ::试试这个

 public void stopThread(){ if(myService.getThread()!=null){ myService.getThread().interrupt(); myService.setThread(null); } } 

不使用Thread.stop()方法,可以使用Thread.currentThread().interrupt(); 并设置thread=null

使用Service的Context.stopService()stopSelf()方法。

在服务的onDestroy方法中执行

http://developer.android.com/reference/android/app/Service.html#onDestroy()

  public void onDestroy(){ thread.stop(); super.onDestroy(); } 

然后用stopService()停止服务; (这将调用onDestroy());

http://developer.android.com/reference/android/content/Context.html#stopService(android.content.Intent)

 @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); Thread.currentThread().interrupt(); }