Метод setExact AlarmManager не работает правильно - PullRequest
0 голосов
/ 09 апреля 2019

Я работаю над приложением CountDown. Я хочу запустить «действие в конце обратного отсчета», когда обратный отсчет достигнет 0. У меня есть переменная, отслеживающая, сколько времени осталось (переменная, которую я использую для отображения обратного отсчета).

Документация дает мне это (я должен использовать этот метод, потому что это часть упражнения): public void setExact (int type,long triggerAtMillis,PendingIntent operation)

Зная это, я передаю свою переменную обратного отсчета в качестве второго аргумента, полагая, что действие будет примерно открыто в то время, которое я дал.

Допустим, я поместил длительность 30 с в переменную продолжительности . Я начинаю обратный отсчет нажатием кнопки и использую метод setExact с использованием переменной продолжительности .

Несмотря на то, что я прохожу 30 с (очевидно, в миллисекундах), «действие в конце обратного отсчета» запускается только через 5 с.

Не стесняйтесь загружать проект .

1 Ответ

0 голосов
/ 09 апреля 2019

Похоже, что вы можете передать 30000 для времени запуска, когда оно, вероятно, должно быть 30000 плюс текущее время в мс.

Из документации: triggerAtMillis long: время в миллисекундах, в течение которого будильник должен сработать, используя соответствующие часы (в зависимости от типа будильника).

...