如何在java中每1秒检查一些条件,直到为真

时间:2015-12-02 02:15:15

标签: java android

我需要每1秒检查一次java中的某些条件,直到它为真。如果是真的,需要退出并继续进行。

说a-> b-> c 每1秒检查一次,直到它为真,如果是,则转到c。

有人可以建议在Java中实现这一目标的最佳方法是什么?

3 个答案:

答案 0 :(得分:4)

我认为您应该查看TimerTimerTask类。您可以使用它们来安排某些任务在一定时间后完成。

您需要扩展“TimerTask”'类并覆盖run()方法。例如,你可以这样做:

这是一个例子,每5秒打印一次Hello World: -

class CheckCondition extends TimerTask {
    public void run() {
       // if some condition is true
          // do something 
    }
 }

从另一种方法中使用,该方法每秒检查一次你的情况(该函数需要几毫秒):

Timer timer = new Timer();

// timer.schedule(class, initial delay, interval in milliseconds)
timer.schedule(new CheckCondition(), 0, 1000);

答案 1 :(得分:4)

以下是您的需求:

    final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                if(!condition)
                    handler.postDelayed(this, 1000);
                else {
                    // do actions
                    condition = true;
                }
            }
        }, 1000);
    }

答案 2 :(得分:3)

一种选择是使用Handler的postDelayed()方法:

// do something A

do {
    // Execute some code after 1 second has passed
    Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 
        public void run() { 
            // do something B
        } 
    }, 1000); 
}
while(condition);

// do something C