android中的计时器没有正确重复延迟

时间:2011-06-15 14:37:30

标签: java android service timer notifications

我在服务中调用了此代码:

timer.scheduleAtFixedRate(new TimerTask(){
           public void run() {
               showNotification();
           }
      }, firstNotify, 86400000L);

据我了解,这应该导致showNotification()每天在同一时间每天调用一次,在firstNotify中指定的时间(86400000是一天中的毫秒数)。

然而,通知大约每3个小时在我的手机上发生,而在我朋友的手机上发生了4个多小时。是否有任何理由为什么这些重复发生的速度超过指定的1天?

2 个答案:

答案 0 :(得分:2)

我知道这不是您问题的直接答案,但您应该在与您相同的情况下使用AlarmManager。请参阅setRepeating功能。

答案 1 :(得分:1)

如果您的Service设置不正确并且某个时刻正在关闭,则会在firstNotify延迟后重新创建并再次调用Timer。听起来有可能吗?您可能最好使用AlarmManager来创建定时事件。