java – 如何停止正在运行的TimerTask
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何停止正在运行的TimerTask,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1392字,纯文字阅读大概需要2分钟。
内容图文
![java – 如何停止正在运行的TimerTask](/upload/InfoBanner/zyjiaocheng/698/cd277f4daca74d98918626fa7fbb9749.jpg)
我试图制作一个简单的计时器,在指定的秒数后发出蜂鸣声.我设法让它工作,但TimerTask继续在蜂鸣声后运行.现在我要停止执行吗?
这是我的代码:
import java.util.Scanner;
import java.util.Timer;
import java.util.TimerTask;
import java.awt.Toolkit;
class Alarm {
public static void main(String[] args) {
long delay;
Scanner scan = new Scanner(System.in);
System.out.print("Enter a delay in seconds: ");
delay = scan.nextInt()*1000;
Timer timer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
Toolkit.getDefaultToolkit().beep();
}
};
timer.schedule(task, delay);
}
}
解决方法:
您需要通过调用以下方法取消计时器
timer.cancel(); // Terminates this timer, discarding any currently scheduled tasks.
timer.purge(); // Removes all cancelled tasks from this timer's task queue.
这将取消任务,所以这样的事情会起作用:
import java.util.Scanner;
import java.util.Timer;
import java.util.TimerTask;
import java.awt.Toolkit;
class Alarm {
private static boolean run = true;
public static void main(String[] args) {
long delay;
Scanner scan = new Scanner(System.in);
System.out.print("Enter a delay in seconds: ");
delay = scan.nextInt()*1000;
final Timer timer = new Timer();
final TimerTask task = new TimerTask() {
@Override
public void run() {
if(run) {
Toolkit.getDefaultToolkit().beep();
} else {
timer.cancel();
timer.purge();
}
}
};
timer.schedule(task, delay);
// set run to false here to stop the timer.
run = false;
}
}
内容总结
以上是互联网集市为您收集整理的java – 如何停止正在运行的TimerTask全部内容,希望文章能够帮你解决java – 如何停止正在运行的TimerTask所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】