2013-02-14 6 views
1

У меня есть функция, которая хотела бы быть исполнена в 00:00, 08:00 и 16:00. (каждые 8 ​​часов).Как назначить функцию?

Как я могу это достичь?

У меня есть некоторые google и поиск, но я не могу найти решение.

Я пробовал следующий код, но он не работает. Пожалуйста помоги. Благодарю.

 try { 
     date = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss", Locale.ENGLISH).parse("2013/02/13 16:00:00"); 

     TimerTask updateProfile = new Controller(context); 

     timer.scheduleAtFixedRate(updateProfile, date, 28800); //28800second == 8 hour 

    } catch (ParseException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
+2

попробовать AlarmManager с WakeLock, – baboo

+0

Что вы имеете в виду под «не работает»? – AgilePro

+0

Программа будет непрерывно вызывать функцию «updateProfile». Но я хочу просто называть эту функцию 8 часов в 1. –

ответ

0

Попробуйте использовать & RND над Service, AlarmManager, PendingIntent & Intent и их сочетание работы.

+0

welcome @luckycomewait –

0

вы можете использовать класс AlarmManager для scedule задания на определенное время, есть много примера alarammager, android docs

0

1) период должен быть в миллисекундах, 8 ч = 28800000

2) Locale. ENGLISH не имеет значения, удалите, чтобы избежать путаницы

3) Вы начинаете дату в прошлом, когда вы запускаете таймер, он будет запускать все пропущенные графики. Если вы не хотите, чтобы это проверить, что TimerTask.scheduledExecutionTime() не в прошлом, например,

 public void run() { 
      // truncate time to hours 
      long t1 = System.currentTimeMillis()/3600000 * 3600000; 
      long t2 = scheduledExecutionTime()/3600000 * 3600000; 
      if (t2 >= t1) { 
       ... 
      } 
+0

Спасибо. Это новая концепция для меня. Я не знаю, что он перезапустит все пропущенные расписания. –

+0

Можете ли вы объяснить, как избежать запуска всех пропущенных графиков? Я просто хочу, чтобы функция запускалась только один раз после определенного таймера. –

+0

добавил пример, как пропустить старые расписания –

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