使用Timer只运行任务5次的最佳方法是什么?

时间:2016-05-17 14:24:13

标签: android android-studio libgdx

我正在使用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次之后停止,而是继续进行。帮助

1 个答案:

答案 0 :(得分:1)

问题在于Timer的LibGDX实现调度任务,而不是再次调度x次,如上一个参数所示。这种方法的评论说"计划任务在指定的延迟后发生一次,然后在指定的时间间隔发生一些额外的时间。" 因此,第一种方法执行任务6次而不是预期的5次