我在Android应用程序中有两个线程,一个是视图线程,另一个是工作线程.我想要做的是,睡眠工作线程,直到视图线程终止onDraw方法的处理.
我怎么能这样做?有没有等待信号或什么?
在两个线程之间共享一个java.lang.Object,其唯一目的是告诉工作线程何时可以继续工作.每当工作线程到达应该睡眠的点时,它都会这样做:
stick.wait();
当视图线程完成其onDraw工作时,它会调用:
stick.notify();
请注意视图线程拥有对象上的监视器的要求.在您的情况下,使用小型同步块执行此操作应该相当简单:
void onDraw() { ... synchronized (stick) { stick.notify(); } } // end onDraw()
在这些方法上查询java.lang.Object的javadoc(以及notifyAll,以防万一); 他们的写得非常好.