我需要每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);
}
Run Code Online (Sandbox Code Playgroud)
小智 5
我认为你应该看看Timer和TimerTask类。您可以使用它们来安排某些任务在一定时间后执行。
您需要扩展“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)
| 归档时间: |
|
| 查看次数: |
2957 次 |
| 最近记录: |