Таймеры в Сервисах Android? - PullRequest
0 голосов
/ 27 марта 2012

У меня есть служба Android, которая обращается к базе данных примерно раз в минуту. Есть ли способ в рамках этой службы запустить другой процесс в таймере, который выполняется один раз каждые 12 часов? Прямо сейчас у меня есть следующий код в моем сервисе, но этот код выполняется с той же скоростью, что и сервис:

UPDATE_INTERVAL = (1000*60)*60*12;
 timer.scheduleAtFixedRate(new TimerTask(){
                    @Override

                    public void run(){   

                        if(!parseDailyData(AppStatus.getConsumer(), AppStatus.getProvider(), client, dayData))
                        {
                            Log.v(TAG, "no parse day set");  
                        }
                        getTopPeople();
                    }

                }, 0, UPDATE_INTERVAL);

1 Ответ

1 голос
/ 27 марта 2012

У меня есть служба Android, которая обращается к базе данных примерно раз в минуту.

Надеюсь, это работает только тогда, когда ваше приложение находится на переднем плане, или потому что пользователь явно попросил запустить эту службу.

Есть ли способ в рамках этой службы запустить другой процесс в пределах таймера, который выполняется один раз каждые 12 часов?

Используйте AlarmManager для того, что будет происходить каждые 12 часов. Вы могли бы даже подумать о том, чтобы использовать его для чего-то, что будет запускаться каждую 1 минуту, так что вам не обязательно постоянно связывать память.

...