Как мне обращаться со всеми делами?Должен ли я проверить версию API и затем соответствующим образом запрограммировать Alarm?
Если вы хотите, вы можете использовать set()
в версиях Android до 19 и сохранять совместимое расписание перепланирования для всех версий, скореечем ручное перепланирование для одних и автоматическое планирование для других.
Также обратите внимание, что в Android P я бы ожидал, что даже setExactAndAllowWhileIdle()
не будет точным, если ваше приложение попадет в резервную корзину неактивных приложений.
Или есть библиотека поддержки, которую я мог бы использовать для обратной совместимости, которая работала бы для всех сценариев?
Существует AlarmManagerCompat
,которая предлагает обратно-совместимую реализацию setExactAndAllowWhileIdle()
.
как мне отменить сигналы тревоги?Нужно ли использовать аналогичную схему, в которой я проверю используемую версию API и получу другой код для отмены, соответствующий установленному API?
Поскольку вы отменяете с помощью PendingIntent
, вам потребуется другая логика отмены, если вы используете разные структуры PendingIntent
.Я предполагаю, что вы можете использовать один и тот же PendingIntent
для всех сценариев, и в этом случае ваша логика cancel()
будет одинаковой для всех сценариев.