我最近开始使用 Java 并正在探索 Android 开发。我试图移植我制作的一个 Java 程序,但是在让 java Timer 在 Android 中以相同的方式运行时遇到了一些困难。我阅读了许多帖子,它们在大多数情况下表示最好在 android 中使用 Handler 类而不是 Timer。
这是我在 Java 中的计时器:
playTimer = new Timer(1000/model.getFPS(), new ActionListener() {
public void actionPerformed(ActionEvent evt) {
// do something
...
if( finished everything ) playTimer.stop();
}
});
一旦单击某个按钮,我只需运行“playTimer.start()”即可启动它。
如您所见,我设置了它,以便用户可以设置他们想要的 FPS(只需将 Timer 类的第一个参数设置为 1000/model.getFPS())。
现在我尝试使用处理程序在 Android 中做类似的事情,但我遇到了一些困难。处理程序滴答似乎没有以适当的时间间隔触发。与我需要的相比,它们似乎相当慢。到目前为止,这是我在 android 中所做的:
public void startTimer() {
playHandler = new Handler();
startTime = System.currentTimeMillis();
playHandler.removeCallbacks(updateTimeTask);
playHandler.postDelayed(updateTimeTask, 0);
}
private Runnable updateTimeTask = new Runnable() {
public void run() {
// do something
...
if( finished everything ) playHander.cancel();
else {
playHandler.postDelayed(updateTimeTask, 1000/model.getFPS());
}
}
};
原谅半伪代码。任何人都可以解释一下吗?多谢你们。