![](/img/trans.png)
[英]How to use a Thread to check every time (like running it in background) until my condition is 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);
}
我认为您应该看看Timer
和TimerTask
类。 您可以使用它们来计划在一定时间后要执行的某些任务。
您需要扩展“ 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.