2011-06-15 89 views
0

正确地重复我有这样的代码中调用的服务:计时器在Android中没有延迟

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

这是我的理解,这一点应引起showNotification()进行每天一次在每天同一时间调用,在firstNotify中指定的时间(86400000是一天中的毫秒数)。

但是,通知大约每隔3小时发生在我的手机上,并且在我朋友的手机上约4小时左右发生。是否有任何理由为什么这些会比指定的1天重复更快?

回答

2

我知道它不是你的问题的直接答案,但你应该在这种情况下使用AlarmManager。请参阅setRepeating函数。

+0

谢谢,我用你的建议写了它,似乎工作得很好! – JBStevens6 2011-06-15 21:21:56

+0

很高兴帮助你:) – inazaruk 2011-06-15 21:22:38

1

如果您的Service设置不正确,并且它在某个时间点处于关闭状态,则会在延迟firstNotify之后重新创建并重新调用该计时器。这听起来可能吗?使用AlarmManager创建定时事件可能会更好。