Установка будильника в 9:00 по Гринвичу - PullRequest
0 голосов
/ 01 марта 2012

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

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

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

1 Ответ

2 голосов
/ 01 марта 2012

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

calendar.set(Calendar.HOUR, 9);

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

calendar.set(Calendar.HOUR_OF_DAY, 9);

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

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

...