Вы добавляете «дополнительные» к Intent
, который вы передаете AlarmManager
.Это «лишнее» будет в Намерении, которое доставляется на ваш BroadcastReceiver
в onReceive()
, но вы ничего с этим не делаете.
Когда вы нажимаете на Notification
, он запускает drinkReminder
, который, я надеюсь, будет Activity
.
Вы также сказали в комментарии:
Не могли бы вы сказать мне, пожалуйста, еще одну вещь.Иногда, если я нажимаю кнопку, чтобы запустить службу, уведомление появляется примерно через 10 секунд, после чего оно показывает все 10 минут, как должно.Как я могу это исправить?
Вот ваш код для установки будильника:
Calendar calendar = Calendar.getInstance();
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), 1000 * 60 * 10, pendingIntent);
Когда вы звоните setRepeating()
, 2-й параметр указывает первый раз, когда будильник долженвыключить, а 3-й параметр указывает интервал повторения.Вы сказали диспетчеру аварийных сигналов, что вы хотите, чтобы первый аварийный сигнал срабатывал немедленно, а затем каждые 10 минут после этого.
Если вы хотите, чтобы первый аварийный сигнал срабатывал через 10 минут после нажатия кнопки, необходимо настроитьвторой параметр, поэтому он представляет время, которое в будущем будет 10 минут, например:
Calendar calendar = Calendar.getInstance();
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis() + (1000 * 60 * 10), 1000 * 60 * 10, pendingIntent);