【发布时间】:2012-04-17 10:15:37
【问题描述】:
我刚刚注意到,android 线程中的挂起和恢复已被弃用。解决这个问题的方法是什么,或者如何在 android 中暂停和恢复线程?
【问题讨论】:
-
嗨 LeoLink 我认为服务不会解决我的问题。无论如何谢谢:)
标签: java android multithreading resume suspend
我刚刚注意到,android 线程中的挂起和恢复已被弃用。解决这个问题的方法是什么,或者如何在 android 中暂停和恢复线程?
【问题讨论】:
标签: java android multithreading resume suspend
确实,在随机点挂起或停止线程是不安全的想法,这就是不推荐使用这些方法的原因。
在我看来,你能做的最好的事情是在你的线程的 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();
}
}
【讨论】: