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

Upe*_*pen 0 java android

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

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

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

Ami*_*zan 6

这是您需要的:

    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);
    }
Run Code Online (Sandbox Code Playgroud)


小智 5

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

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

下面是一个示例,每 5 秒打印Hello World一次:-

class CheckCondition extends TimerTask {
    public void run() {
       // if some condition is true
          // do something 
    }
 }
Run Code Online (Sandbox Code Playgroud)

从另一种方法使用,该方法每秒检查一次您的条件(该函数需要几毫秒):

Timer timer = new Timer();

// timer.schedule(class, initial delay, interval in milliseconds)
timer.schedule(new CheckCondition(), 0, 1000);
Run Code Online (Sandbox Code Playgroud)