在我的应用程序中,我在后台线程上运行了以下代码:
MyRunnable myRunnable = new MyRunnable();
runOnUiThread(myRunnable);
synchronized (myRunnable) {
myRunnable.wait();
}
//rest of my code
MyRunnable看起来像这样:
public class MyRunnable implements Runnable {
public void run() {
//do some tasks
synchronized (this) {
this.notify();
}
}
}
我希望myRunnable完成执行后继续执行后台线程。有人告诉我上面的代码应该解决这个问题,但是有两件事我不明白:
最佳答案
myRunnable.wait()
将释放myRunnable
的锁定,并等待通知//synchronized wait block
while(myRunnable.needWait){
myRunnable.wait();
}
//synchronized notify block
this.needWait = false;
myRunnable.notify();
关于Java-等待Runnable完成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34459392/