如何在android中挂起和恢复线程?

时间:2012-04-17 10:15:37

标签: java android multithreading resume suspend

我刚注意到android线程中的暂停和恢复已被弃用。这个是什么工作或如何在android中挂起和恢复一个线程?

1 个答案:

答案 0 :(得分: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();
     }
}