计算机休眠时恢复Java程序?

时间:2013-05-18 19:14:36

标签: java loops sleep resume

我有一个Java程序,其中有一个循环,每20秒检查一次新消息。

示例:

while (true) {
    Thread.sleep(20000);
    newMessages();
}

这在计算机运行时有效。但是,如果用户想让他们的计算机进入睡眠状态,然后在一段时间后将其唤醒,整个程序就会搞砸,不再每20秒检查一次消息。有没有办法纠正这个?

1 个答案:

答案 0 :(得分:2)

您可以使用Thread.sleep

,而不是使用Timer
  

线程的工具,用于在后台线程中安排将来执行的任务。任务可以安排为一次性执行,也可以定期重复执行。

您的代码可能是:

final Timer timer = new Timer();
final TimerTask task = new TimerTask() {        
    @Override
    public void run() {
        newMessages();
    }
};      
timer.scheduleAtFixedRate(task, new Date(), 20000);

Timer Javadoc