我在服务中调用了此代码:
timer.scheduleAtFixedRate(new TimerTask(){
public void run() {
showNotification();
}
}, firstNotify, 86400000L);
据我了解,这应该导致showNotification()
每天在同一时间每天调用一次,在firstNotify中指定的时间(86400000是一天中的毫秒数)。
然而,通知大约每3个小时在我的手机上发生,而在我朋友的手机上发生了4个多小时。是否有任何理由为什么这些重复发生的速度超过指定的1天?
答案 0 :(得分:2)
我知道这不是您问题的直接答案,但您应该在与您相同的情况下使用AlarmManager
。请参阅setRepeating
功能。
答案 1 :(得分:1)
如果您的Service
设置不正确并且某个时刻正在关闭,则会在firstNotify
延迟后重新创建并再次调用Timer。听起来有可能吗?您可能最好使用AlarmManager
来创建定时事件。