codereviewanskquestions
codereviewanskquestions

Reputation: 14008

How do I kill an Android thread completely?

I have a service that has its own thread running on background. I'd like to kill that service including the thread.

I created the thread like this and run it.

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

How do I kill the service and the thread as well? I don't have to worry about data safety..

Upvotes: 33

Views: 83144

Answers (5)

Atul Bhardwaj
Atul Bhardwaj

Reputation: 6717

The method Thread.stop() is deprecated, you can use Thread.currentThread().interrupt(); and then set thread=null.

Upvotes: 7

gaddam nagaraju
gaddam nagaraju

Reputation: 187

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

Upvotes: 1

Houcine
Houcine

Reputation: 24181

to kill the thread , i think you can do like this :

myService.getThread().interrupt();

NOTE : the method Thread.stop() is deprecated

EDIT : : try this

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

Upvotes: 42

Blundell
Blundell

Reputation: 76574

Do it in the service's onDestroy method

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

 public void onDestroy(){

         thread.stop();
         super.onDestroy(); 
 }

Then stop the service with stopService(); (this will invoke onDestroy());

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

Upvotes: 1

Vladimir Ivanov
Vladimir Ivanov

Reputation: 43108

use Context.stopService() or stopSelf() method of the Service.

Upvotes: 1

Related Questions