我有一个动画在后台运行,并且我想在完成时注册一个回调。动画不是标准的Java动画 - 它是通过jni访问的c动画(所以为此假设它只是对象)。Java中更好的等待语法
动画没有onFinish方法注册,但它确实有一个isDone()方法,它返回一个布尔值如果动画不再运行。要创建回调,我添加了一个可运行的这样:
class Foo implements Runnable {
@Override
public void run() {
if (animation == null || target == null) return;
while (!animation.isDone())
{
//loop until animation is done...
}
//execute callback
}
}
这似乎是它会是这样做的很不好 - 只是有一个循环运行,直到动画完成。这就是说,我的问题是:有什么替代或首选的方式等待,直到isDone()返回true才能执行我的回调?
有没有办法发出一个线程中的JNI调用d在完成后通知对象? JNI调用是否在后台执行? – Gray 2012-03-30 21:36:08