TimerscheduleAtFixedRatenew TimerTask 倒计时结束时间如何自动设置计时器方便重启不一样时间的计时器给出具体的代码
下面是一个示例代码,演示了如何使用Timer和TimerTask来设置倒计时器,并且可以根据需要重启不同时间的计时器。
import java.util.Timer;
import java.util.TimerTask;
public class CountdownTimer {
private Timer timer;
private TimerTask timerTask;
private long endTime;
public void start(long duration) {
if (timer != null) {
timer.cancel();
}
timer = new Timer();
endTime = System.currentTimeMillis() + duration;
timerTask = new TimerTask() {
@Override
public void run() {
long currentTime = System.currentTimeMillis();
long remainingTime = endTime - currentTime;
if (remainingTime <= 0) {
// 倒计时结束,执行相关操作
timer.cancel();
System.out.println("倒计时结束");
} else {
// 打印剩余时间
System.out.println("剩余时间:" + remainingTime / 1000 + "秒");
}
}
};
// 每秒执行一次
timer.scheduleAtFixedRate(timerTask, 0, 1000);
}
public void reset(long duration) {
if (timer != null) {
timer.cancel();
}
start(duration);
}
public static void main(String[] args) {
CountdownTimer countdownTimer = new CountdownTimer();
countdownTimer.start(60000); // 60秒倒计时
// 假设过了30秒后,需要重新设置为30秒倒计时
try {
Thread.sleep(30000);
countdownTimer.reset(30000); // 30秒倒计时
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
在上述代码中,start()方法用于启动倒计时器,并设置指定的倒计时持续时间。reset()方法用于重置倒计时器,可以在任何时候调用,以重新设置倒计时持续时间。在run()方法中,会根据当前时间和结束时间计算剩余时间并执行相应的操作。在示例代码中,当倒计时结束时,会取消计时器并打印"倒计时结束"。你可以根据需要修改相应的操作
原文地址: http://www.cveoy.top/t/topic/iSME 著作权归作者所有。请勿转载和采集!