在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执行下面操作,否则一直等待