Я не думаю, что BroadcastReceiver не рекомендуется, это правильное определение на данный момент, оно просто имеет больше ограничений , таких как регистр приемников вещания для неявных передач в манифесте и в соответствии с документами:
- Приложения могут продолжать регистрироваться для явных передач в их манифестах
- Приложения могут использовать
Context.registerReceiver()
во время выполнения для регистрации получателя для любой передачи, неявной или явной.
В режиме Doze имеется несколько ограничений , но он обеспечивает решение для срабатывания сигнализации в режиме Doze в режиме энергосбережения с использованием AlarmManager
:
Есливам нужно установить будильник, который срабатывает в режиме Doze, используйте setAndAllowWhileIdle()
или setExactAndAllowWhileIdle()
.
. Вам нужно примерно setAndAllowWhileIdle и setExactAndAllowWhileIdle и решить, какиеодин актуален для вас.