我在一个Android应用程序中有两个线程,一个是视图线程,另一个是工作线程。我的目标是,在视图线程终止处理onDraw方法之前,使工作线程进入睡眠状态。
我该如何实现这一目标?是否有等待信号或其他方法?
我在一个Android应用程序中有两个线程,一个是视图线程,另一个是工作线程。我的目标是,在视图线程终止处理onDraw方法之前,使工作线程进入睡眠状态。
我该如何实现这一目标?是否有等待信号或其他方法?
在两个线程之间共享一个 java.lang.Object,唯一的目的是告诉工作线程何时可以继续其工作。每当工作线程达到应该休眠的时候,它会执行以下操作:
stick.wait();
当视图线程完成其onDraw工作后,它会调用这个:
stick.notify();
请注意需要视图线程拥有对象的监视器的要求。在您的情况下,可以通过一个小的同步块来强制实施:
void onDraw() {
...
synchronized (stick) {
stick.notify();
}
} // end onDraw()
请参考java.lang.Object的javadoc文档,查看这些方法的详细说明(包括notifyAll方法,以防万一)。它们写得非常好。