您可以像这样注册一个计时器处理程序:
protected Scene onCreateScene() {
Scene myScene = new Scene(); // somewhere you create your scene
float xSeconds = 5.5f; // meaning 5 and a half second
boolean repeat = true; // true to reset the timer after the time passed and execute again
TimerHandler myTimer = new TimerHandler(xSeconds, repeat, new ITimerCallback() {
public void onTimePassed(TimerHandler pTimerHandler) {
methodWithStuffToDo();
}
});
myScene.registerUpdateHandler(myTimer); // here you register the timerhandler to your scene
.... // some other stuff
return myScene;
}
然后你在你的场景中编写一个方法来实现你想要在定时器完成时执行的代码:
public void methodWithStuffToDo(){ ... }
解释:
TimerHandler 将在onUpdate
更新线程的方法中被检查。当接近指定时间(此处为 5.5 秒)时,将触发 onTimePassed 方法。我说close,因为 UpdateThread 不一定精确到最后一个毫秒。这与您的代码中的建议基本相同,不同之处在于 TimerHandler 将实际处理更新方法并决定何时执行什么操作(这比创建自己的 UpdateHandler 更简单)。