Вы можете установить столько будильников, сколько захотите.Хитрость заключается в том, чтобы убедиться, что они AlarmManager
считаются "уникальными".Чтобы сделать их «уникальными», вы можете использовать один из следующих методов:
- Использовать другой (уникальный) параметр
requestCode
при вызове PendingIntent.getBroadcast()
- Использовать другой(уникальное) ДЕЙСТВИЕ или ДАННЫЕ в
Intent
, который вы передаете PendingIntent.getBroadcast()
Невозможно установить будильник, который будет повторяться ежедневно в течение определенного количества дней.Однако вы можете настроить повтор будильника каждый день, и когда срабатывает будильник, проверьте в BroadcastReceiver
, сработал ли будильник в последний раз, и если да, отмените его, чтобы он больше не срабатывал вбудущее.Для этого вам нужно будет помнить день, когда он «истекает», что вы можете сделать, либо сохранив эту информацию в базе данных или SharedPreferences
, либо добавив эту информацию как «дополнительную» к Intent
, которыйпередается в BroadcastReceiver
.
ПРИМЕЧАНИЕ: В Android много правил планирования тревог, чтобы попытаться оптимизировать срок службы батареи.Если ваш будильник не должен срабатывать в точное время, Android изменит расписание на более оптимальное время.Есть способы заставить будильник срабатывать в точное время, но вы не можете надежно установить повторяющееся точное время.Если вам нужно точное время, запланируйте будильник один раз, а когда он сработает, назначьте следующий.Прочтите о том, как AlarmManager
работает и как лучше планировать свои тревоги на https://developer.android.com/training/scheduling/alarms