我需要在应用程序挂起之前销毁线程。这是我的代码:

public class MyThread extends Thread
{
   public boolean mRun = false;;
   @Override
   public void run()
   {
        while (mRun)
        {
              .....
        }
    }
 }


活动:

 @Override
 public void onPause() {
    if (mThread != null)
    {
        mThread.mRun = false;
        try { mThread.join(); }
        catch (InterruptedException e) { }
    }
    super.onPause();
}


但我很确定android系统不会在等待线程结论并暂停我的应用程序。我如何强制线程结论?

最佳答案

我在代码中使用的这种方式可以满足您的要求,希望对您也有帮助。如果您找到更好的解决方案,请分享。

在以下代码段中,mThread是在onCreate中创建的线程。 OnDestroy是一种在活动销毁之前将被调用的方法,它是清空分配的资源的最佳位置。

@Override
public void onDestroy() {
    super.onDestroy();
    if(null != mThread) {
        Thread dummyThread = mThread;
        mThread = null;
        dummyThread.interrupt(); // Post an interrupt request to this thread.
       }
}


干杯!

关于android - 等不及onPause内的线程结论,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13600693/

10-11 22:20