gpt4 book ai didi

Java TimerTask 取消

转载 作者:行者123 更新时间:2023-12-02 03:26:21 29 4
gpt4 key购买 nike

我遇到以下问题。每隔 2 秒,程序就会进入 if 语句。在这个 if 语句中,我想要一个计时器,它会在 15 秒后给我一条消息。计时器应延迟 1 秒运行。但是当我用计时器“等待”时,if 语句将再执行 7 次。我的问题是,我总是有 7 个相同的 TimerTask 同时运行。我怎么解决这个问题?

if (response == true) {
final Timer timer = new Timer();
final int keepAliveTimeout = 15000; //15 seconds
timer.schedule(new TimerTask() {
@Override
public void run() {
if (response) {
response = false;
Log.i(TAG, "********Response******");
timeoutCounter = 0;
} else if (timeoutCounter > keepAliveTimeout) {
Log.i(TAG, "********Timer Timeout******");
}

Log.i(TAG, "********Timer******");
timeoutCounter = timeoutCounter + 1000;
}
}, 0, 1000);
}

最佳答案

来自Java API :

public void schedule(TimerTask task, long delay, long period)

Schedules the specified task for repeated fixed-delay execution, beginning after the specified delay. Subsequent executions take place at approximately regular intervals separated by the specified period.

这意味着您可以立即运行任务,每秒执行一次

关于Java TimerTask 取消,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38831736/

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