java - 如何在android中暂停和恢复线程?

标签 java android multithreading resume suspend

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

最佳答案

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

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

关于java - 如何在android中暂停和恢复线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10189289/

相关文章:

java - Spring Boot 配置和使用两个数据源

java - 如何访问父 Activity 中的 fragment 布局?

java - 创建标题页 Activity

c# - 从另一个线程(.Net)调用 Windows 窗体

android - 键盘打开后滚动对话框

c++ - 如何才能成为比赛条件。还是我的代码有问题

java - 如何找到ID为动态的行

java - 在Java中,“this”在构造函数中是否可以为null?

Java序列化问题

android - 蓝牙 SDP 和 UUID 如何工作? (专门针对安卓)