Ich habe eine Animation im Hintergrund ausgeführt, und ich möchte einen Rückruf für den Fall, dass es abgeschlossen ist. Die Animation ist keine Standard-Java-Animation - es handelt sich um eine c-Animation, auf die über jni zugegriffen wird (nehmen Sie also an, dass sie nur vom Typ Objekt ist).Bessere Wartesyntax in Java
Die Animation hat keine OnFinish Methode zu registrieren, aber es hat eine IstFertig() Methode, die einen Booleschen Wert zurückgibt, wenn die Animation nicht mehr läuft. Um den Rückruf zu erstellen, habe ich eine runnable als solche:
class Foo implements Runnable {
@Override
public void run() {
if (animation == null || target == null) return;
while (!animation.isDone())
{
//loop until animation is done...
}
//execute callback
}
}
Dies scheint, wie es eine schlechte Art und Weise, dies zu tun wäre - nur eine Schleife laufen, die bis in der Animation beendet. Das heißt, meine Frage ist: Welche alternativen oder bevorzugten Möglichkeiten gibt es zu warten, bis IsDone() gibt True zurück, um meinen Rückruf auszuführen?
gibt es keine Möglichkeit, Ihre JNI Aufruf in einem Thread eine Verwendung zur Ausgabe von d dann ein Objekt benachrichtigen, wenn es fertig ist? Wird der JNI-Aufruf im Hintergrund ausgeführt? – Gray