Alarm Manager не работает из-за оптимизации батареи в Oreo, One plus 3

Я использую диспетчер аварийных сигналов, чтобы показывать уведомления в определенный интервал дня. Когда приложение убито/удалено, функция, которая прямо сейчас показывает уведомление, перестает работать.

После прочтения ответов в этой теме: setExactAndAllowWhileIdle() для диспетчера тревог не работает должным образом

Я отключил оптимизацию батареи для своего приложения (которую я также могу сделать программно), и я начал получать уведомления, даже когда приложение не запущено. Я экспериментировал с менеджером работ (который все еще находится в альфа-версии). У него та же проблема, хотя он говорит, что выполнит задачу с учетом всех возможных сценариев. И эта проблема в первую очередь с Oreo. Ищите исправление для того же самого. При необходимости выложу фрагменты кода.

Примечание. Я хочу, чтобы мое приложение было в списке оптимизированных, поэтому я избегаю этого подхода. Кроме того, я также пробовал setAlarmClock, та же проблема сохраняется, также он показывает временной интервал в качестве будильника на главном экране.


person Community    schedule 12.06.2018    source источник


Ответы (1)


У меня была точно такая же проблема, и после нескольких часов исследований я обнаружил, что «Расширенная оптимизация» ограничивала эту функциональность моего приложения на моем OP 5T, и оно отлично работало на эмуляторе Pixel 2. Этот параметр находится в разделе «Аккумулятор» -> «Оптимизация аккумулятора» -> «3 точки» -> «Расширенная оптимизация». Мне еще предстоит выяснить, является ли это предварительно выбранным по умолчанию. OOS «оптимизирует использование батареи» для моего приложения, оно работает до тех пор, пока отключена расширенная оптимизация.

person Aden Diamond    schedule 23.07.2018
comment
Это, кажется, решает много проблем, касающихся, например. службы переднего плана при работе на OnePlus 6. - person manabreak; 19.11.2018