Не было никаких проблем с кодом.Проблема заключалась в программном обеспечении управления питанием моего смартфона Huawei.
Как я выяснил, некоторые версии Android от нескольких компаний (Huawei, Samsung, Xiaomi ...) имеют более строгие правила управления питанием.
Если пользователь принудительно закрывает приложение, будильник будет работать еще несколько часов.Затем приходит программное обеспечение управления питанием от устройства и убивает все фоновые службы для приложений, которые не работают.
Именно поэтому оно всегда работало в эмуляторе, а не на моем смартфоне.
Решение для моегоСитуация:
- Отключение управления питанием для моего приложения
- Снова включите сигнализацию
ЕСЛИ КОГДА-то ЕЩЕ ПРОХОДИТ В ЭТОЙ ПРОБЛЕМЕ, ПРОВЕРЬТЕ СВОЕ ПОЛНОМОЧИЕSETTING!
Некоторые полезные команды adb в этом случае:
Выяснение, остановлено ли ваше приложение.Значение должно быть ложным.Это означает, что фоновые задачи выполняются, и они не были уничтожены программным обеспечением управления питанием.
adb shell dumpsys package $packageName |grep stopped
Отображение аварийных сигналов для вашего пакета и некоторая дополнительная информация, например, сколько времени прошло с момента последнего запуска:
adb shell dumpsys alarm |grep -C4 $packageName