2012-03-01 6 views
0

У меня возникла странная проблема. Мне нужно, чтобы задача выполнялась ровно в 9:00 по Гринвичу. Вот код, который я использую:Настройка сигнализации в 9:00 GMT

AlarmManager mgr = (AlarmManager) context 
      .getSystemService(Context.ALARM_SERVICE); 
Calendar calendar = Calendar.getInstance(TimeZone 
        .getTimeZone("GMT")); 
      calendar.setTimeInMillis(System.currentTimeMillis()); 
      calendar.set(Calendar.HOUR, 9); 
      calendar.set(Calendar.MINUTE, 0); 

      mgr.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pi); 

Часовой пояс GMT +2. В качестве теста я попытался установить будильник в это время:

Alarm time = My time - 2 hours + couple of minutes to catch the alarm 

Но он никогда не работал. Я что-то упускаю? Заранее спасибо.

ответ

2

Это может быть проблема:

calendar.set(Calendar.HOUR, 9); 

Вот установка «час утром или днем» - делать, если вы уже во второй половине дня, он будет установить его в 9 вечера. Я думаю, что вы хотите:

calendar.set(Calendar.HOUR_OF_DAY, 9); 

Вполне возможно, что это не объясняет вашу проблему, но это, конечно, одна вещь, чтобы исправить. Обратите внимание, что он будет в тот же день - так что если вы сделаете это после 9 утра, он не выстрелит.

(Вы, вероятно, следует установить в поле секунд до 0, тоже.)

+0

Я попытался установить ЧАС 13, так как сейчас 15 в моем часовом поясе. К сожалению, это не работает. – Egor

+0

@Egor: HOUR не должно быть 13 или 15 - оно должно быть 1 или 3. HOUR_OF_DAY будет 13 или 15. –

+0

О, конечно, получил его сейчас. Благодаря! – Egor

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

  • Нет связанных вопросов^_^