繁体   English   中英

如何在Java中每1秒检查一次某些条件,直到达到true

[英]How to check some condition every 1 sec in java until true

我需要每1秒检查一次Java中的某些条件,直到它为true。一旦为true,则需要从中退出并继续进行操作。

说a-> b-> c每1秒检查一次b,直到它成立为止,如果是,请转到c。

有人可以建议用Java实现此目标的最佳方法是什么?

这是您需要的:

    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);
    }

我认为您应该看看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);

一种选择是使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM