簡體   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