gpt4 book ai didi

java - 如何防止 if 语句在第一次检查其条件时只执行一次?

转载 作者:行者123 更新时间:2023-12-01 23:18:01 25 4
gpt4 key购买 nike

我已经初始化了一个 int 变量i = 0。我的代码有一个无限的 while 循环,当 Activity 开始时立即检查该循环。在此循环中,我需要在一段时间间隔(例如 3 秒)后执行某些任务。我的代码与此类似:

while(1){
if (System.currentTimeMillis() - learningTime > 3000) {
learningTime = System.currentTimeMillis();

i++;
}
}

由于 System.currentTimeMillis() -learningTime > 3000 在程序执行开始时为 true,因此 i 将快速增加到 1以后每 3 秒增加一次。

如何在 Activity 开始后 3 秒内强制 i0 递增到 1

最佳答案

将 System.currentTimeMillis() 值分配给learningTime,使其为 0 > 3000

learningTime = System.currentTimeMillis()

而且,无论如何你都会用这段代码阻塞主线程。

这可以是 Handler 的一个例子

final Handler handler = new Handler();

Runnable runnable = new Runnable() {
@Override
public void run()
{
handler.postDelayed(this, 3000);
}
};

handler.postDelayed(runnable, 3000);

Handler class Runnable Handler postDelayed

无论如何,你不再需要learningTimei(?)

关于java - 如何防止 if 语句在第一次检查其条件时只执行一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20951359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com