在Android开发过程中,有时候会遇到这样的情况,在一个线程中,执行A操作,B操作需要等A操作结束后才进行,因此需要wait,在java中可以如下代码实现
Handler mBlueHandler = new Handler(Looper.getMainLooper());
Task task = new Task();
mBlueHandler.post(task);
while (!task.finish) {
synchronized (task) {
try {
task.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
class Task implements Runnable {
boolean finish = false;
@Override
public void run() {
。。。。//具体执行的操作
synchronized (Task.this) {
finish = true;
Task.this.notifyAll();
}
}
}
Handler post出task,task中设一个标志位,当具体操作结束后,将标志位置为有效,然后通知Handler执行下面操作,否则一直等待