ros*_*esr 6 java resume multithreading android 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();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5104 次 |
| 最近记录: |