Я являюсь автором приложения для Android, которое использует AlarmManager для отправки уведомлений пользователям. Мое приложение должно отправлять уведомления в точное время.Каким должен быть подход для надежного приложения с помощью AlarmManager?
Первое препятствие появилось, когда Google представил режим Doze. Фортунально, для этого был изменен метод до setExactAndAllowWhileIdle()
. Это было хорошо на некоторое время. Однако с 2 месяцев число DAU сильно сокращается. И многие пользователи присылают мне сообщения о том, что уведомления не работают на их телефонах.
После некоторого расследования я знаю, что есть Smart Manager в Samsung, защищенные приложения на Huawei и многие другие системы от разных производителей, которые предотвращают нормальное поведение класса AlarmManager.
Итак, вот мой вопрос: как вам удалось решить эту проблему и позволить вашим пользователям на любом устройстве наслаждаться вашим рабочим приложением?
[. Doze ограничения ... Система не позволяет JobScheduler запускать] (https://developer.android.com/training/monitoring -device-state/doze-standby.html) –
Согласно ссылке JaredRummler, JobScheduler не будет работать в режиме «Дозировка». Но, как я писал в своей первой теме, у меня нет проблем с чистым режимом Doz с AlarmManager. Использование 'setExactAndAllowWhileIdle()' делает работу. Моя проблема заключается в том, что производители внедряют свои собственные механизмы оптимизации батареи, которые предотвращают правильную работу приложений, которые полагаются на точное уведомление через AlarmManager. Что такое известное решение с точки зрения разработчика? – Perry
@ Perry Я не уверен в твердом решении для этого. Но я думаю, что вы должны проверить его, по крайней мере, у популярных поставщиков –