【问题标题】:How to Suspend and Resume Threads in android?如何在android中暂停和恢复线程?
【发布时间】:2012-04-17 10:15:37
【问题描述】:

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

【问题讨论】:

标签: java android multithreading resume suspend


【解决方案1】:

确实,在随机点挂起或停止线程是不安全的想法,这就是不推荐使用这些方法的原因。

在我看来,你能做的最好的事情是在你的线程的 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();
     }
}

【讨论】:

  • 哦,好的,我现在明白了@Tudor。顺便说一句,这类似于线程中的信号吗?
  • @rosesr:类似于linux中的条件变量,例如。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-01
相关资源
最近更新 更多