我正在使用LibGDX。我想在几秒钟之后才运行任务5次。我有2个选择。
方法1
Timer.schedule(new Task() {
@Override
public void run() {
mytask();
}
}
, 10
, 10
, 5
);
方法2
Timer.schedule(new Task() { // 1st time
@Override
public void run() {
mytask();
}
}
, 10
);
Timer.schedule(new Task() { // 2nd time
@Override
public void run() {
mytask();
}
}
, 10
);
Timer.schedule(new Task() { // 3rd time
@Override
public void run() {
mytask();
}
}
, 10
);
Timer.schedule(new Task() { // 4th time
@Override
public void run() {
mytask();
}
}
, 10
);
Timer.schedule(new Task() { // 5th time
@Override
public void run() {
mytask();
}
}
, 10
);
我认为方法1更有效但是由于某种原因它不会在第5次之后停止,而是继续进行。帮助
答案 0 :(得分:1)
问题在于Timer的LibGDX实现调度任务,而不是再次调度x次,如上一个参数所示。这种方法的评论说"计划任务在指定的延迟后发生一次,然后在指定的时间间隔发生一些额外的时间。" 因此,第一种方法执行任务6次而不是预期的5次