6

我刚刚注意到 android 线程中的挂起和恢复已被弃用。解决此问题的方法是什么,或者如何在android中暂停和恢复线程?

4

1 回答 1

7

事实上,在随机点暂停或停止线程是一个不安全的想法,这就是这些方法被弃用的原因。

在我看来,你能做的最好的事情是在你的线程run方法中有固定的暂停点并使用wait

class ThreadTask implements Runnable {

     private volatile boolean paused;
     private final Object signal = new Object();

     public void run() {
         // some code

         while(paused) { // pause point 1
            synchronized(signal) signal.wait();
         }

         // some other code

         while(paused) { // pause point 2
            synchronized(signal) signal.wait();
         }

         // ...
     }

     public void setPaused() {
         paused = true;      
     }

     public void setUnpaused() {
         paused = false;
         synchronized(signal) signal.notify();
     }
}
于 2012-04-17T10:22:59.957 回答