java - Java中的闹钟

标签 java timer clock alarm

我想制作一个程序,在将来的某个时间弹出一个弹出窗口,例如。今晚 5:00。基本上,该程序是约会、 session 等的提醒/通知系统。

我的第一直觉是创建一种“时钟监听器”,它会每分钟左右检查一次计算机时间,看看 currentTime == alarmTime。但是,我不知道这是否会占用太多资源,或者让您的程序不断地做这样的事情是否只是一种不好的做法。此外,为了使警报准确,我认为它需要每秒检查一次,而不是每分钟(因为如果它不检查秒数并且将在 5:00:xx 响起,它可能会在 5 点响起:00:59,对于某些人来说可能为时已晚)。每秒检查一次时钟是否太多了?

我的第二个想法是当程序开始运行时,计算警报设置为响起的时间(例如,5 小时后)。然后,等待五个小时,然后拉响警报。但后来我想,虽然不太可能,但用户可能会更改计算机的时间,然后闹钟会在错误的时间响起。所以这实际上行不通。

我见过一些使用线程的解决方案,但我还不熟悉它们,所以我宁愿不使用它们。

我倾向于第一个解决方案,但我想确保它是高效的并且不会减慢其他程序的速度。也许我想多了,检查时钟是一个微不足道的操作,但我只是想确保我没有做错任何事。

最佳答案

sleep 解决方案非常简单,但使用 java.util.Timer并不难,并且为您提供了一个清晰的方法来扩展您的多个警报等的实用程序。假设您要使用 Swing 来显示通知,请注意您的 TimerTask 将需要执行一些它在 Swing 事件线程上工作。 SwingUtilities.invokeAndWait(...)会帮助你的。

关于java - Java中的闹钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7434180/

相关文章:

IOS MusicSequence & MusicPlayer 外部 midi 时钟同步

java - 是否可以在现有 Eclipse RCP View 中添加新的小部件

java - 如何比较 mySQL 中的日期与 java 中的当前日期?

java - 从监听器/事件更改 JComponent

java - 计时器导致 Tomcat 服务器出现问题

c - 在 C 套接字通信中设置多个定时器

iPhone 计时器具有最小的误差/漂移

java - 从像素值重新创建整数时出现 ArrayIndexOutOfBounds 异常

java - 不会更新值

javascript - 使用按钮javascript更改某些东西的颜色