Таймер в андроиде не правильно повторяется по задержке - PullRequest
0 голосов
/ 15 июня 2011

У меня есть этот код в сервисе:

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

Насколько я понимаю, это должно вызывать вызов showNotification() один раз в день в одно и то же время каждый день, во время, указанное в firstNotify (86400000 - это миллисекунды в дне).

Однако уведомления происходили примерно каждые 3 часа на моем телефоне и чуть более 4 часов на телефоне моего друга. Есть ли какая-либо причина, по которой они будут повторяться быстрее, чем указанный однодневный период для повторения?

Ответы [ 2 ]

2 голосов
/ 15 июня 2011

Я знаю, что это не прямой ответ на ваш вопрос, но вы должны использовать AlarmManager в таких случаях, как ваш. См. setRepeating функция.

1 голос
/ 15 июня 2011

Если ваш Service настроен неправильно и в какой-то момент его отключают, таймер воссоздается и вызывается снова после задержки firstNotify. Это звучит возможно? Возможно, вам лучше использовать AlarmManager для создания события по времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...