如何停止或销毁正在运行的Thread

Use*_*337 4 android

我有一个线程类,它参与onCreate活动.

 class MyThread extends Thread
 {
      void run()
      {
           //My code which takes time.
      }
 }

 //-------------------------- To run the thread
 MyThread mThread = new MyThread();
 mThread.start();
Run Code Online (Sandbox Code Playgroud)

在一些外部事件上,我需要停止/销毁当前正在运行的线程.
然后我start在新线程上创建MyThread的新副本并调用函数来运行它.

但我无法销毁/停止以前运行的线程.
是否有任何API可以破坏正在运行的线程.

5hs*_*sba 6

你不能破坏...只有android会在需要时停止线程..你不能停止或销毁它..而是尝试这样..

class MyThread extends Thread
 {
  void run()
  {
 while(bool){
       //My code which takes time.
  }
 }
 }
Run Code Online (Sandbox Code Playgroud)

// --------------------------运行线程

   MyThread mThread = new MyThread();
   mThread.start();
Run Code Online (Sandbox Code Playgroud)

现在当你想停止线程时...将bool值改为false

bool=false;
Run Code Online (Sandbox Code Playgroud)

现在你的代码没有运行......你可以开始新的线程......


Fis*_*ath 5

该了Thread.interrupt()方法是停止正在运行的线程的接受的方式,但一些实施细节为你:如果你的线程是做IO(或者其他任何可以抛出InterruptedException),请务必关闭是你的责任,以确保停止线程之前打开的所有资源。

此页面指示为何不赞成使用Java早期版本中的某些线程功能,以及为何从未实际实现Thread.destroy()。