2012-03-27 3 views
0

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

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

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

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

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

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

+0

Должен ли я создать отдельный сервис для запуска процесса тревоги? Или я могу вызвать 12-часовой повторяющийся сигнал тревоги из службы, которая работает один раз в минуту? Или, лучше ли создать две тревоги в сервисе: один для выполнения один раз в минуту, а другой - один раз в 12 часов? – user836200

+0

@ user836200: Служба выполняет периодическую работу. Настройка расписания будильника с помощью 'AlarmManager' обычно происходит в другом месте. – CommonsWare

Смежные вопросы