【发布时间】:2011-07-22 16:42:52
【问题描述】:
我有一个闹钟,它会在特定时间播放声音。我正在寻找一种方法来阻止它运行,我该怎么做?
这是我的闹钟代码:
waiter = new Thread(new Runnable() {
public void run() {
while (Thread.currentThread() == waiter) {
Calendar d = Calendar.getInstance();
if (getAlarmHours() == d.get(Calendar.HOUR_OF_DAY)) {
if (getAlarmMinutes() == d.get(Calendar.MINUTE)) {
UserInterface
.setAlarmText("no alarms");
playSound.play();
isSoundPlaying = true;
break;
}
}
}
}
});
我想再次使用闹钟,如果我能提供任何关于我可能出错的地方的建议,我将不胜感激。如果我使用wait(),我怎样才能在没有异常的情况下通知?
【问题讨论】:
-
这段代码在触发前会消耗 100% 的 cpu。我建议您在两次检查之间至少睡一秒钟。
-
你是对的,谢谢..每当我运行程序时,我的电脑开始滞后..再次感谢!我现在做一些改变
-
你应该看看你的while循环中的条件。启动线程后,它可能永远不会结束。顺便说一句:我从未见过这种构造,也不知道它在运行时的行为。
-
我几乎删除了这个问题。请记下我的编辑。通过在 Stack Overflow 上提问,您正在向比您有更多经验的同行寻求帮助。尽量大写应该是的单词,同时避免像“想要”这样的“文字说话”。像对待专业人士一样对待我们,您会得到专业人士的答案。
标签: java multithreading timer alarm