Android дремал окно тревоги
Я хочу обновить свое приложение до Android 6, и я использую alarmanager для планирования своей фоновой службы. Для моего служения важно, чтобы меня просыпали примерно в часном окне. Он должен просыпаться в этом окне, чтобы устройство не выходило из режима сна, но мне все равно, когда оно просыпается в окне.
В данный момент я использую.setWindow, чтобы установить будильник. Что мне нужно использовать, когда я хочу, чтобы он работал в режиме ожидания? Нет setWindowAndallowWhileIdle
И, насколько я знаю, предпочтительнее устанавливать окно вместо фиксированного времени, особенно в режиме ожидания.
1 ответ
Похоже, что Android, наконец, решил быть строгим в отношении оптимизации батареи, и, следовательно, трудно обойти режим дозирования. Все дело в том, что вы действительно не должны выполнять какую-либо работу на устройстве, которое не работает в течение нескольких часов, а скорее подождать, пока не появится окно технического обслуживания (с которого начнутся работы), или пользователь не поднимет свое устройство.
Для выполнения неточной или периодической работы, которая, пожалуйста, изучите JobScheduler: это буквально то, для чего он построен, и предлагает вам хорошее разнообразие с точки зрения планирования [на основе таких критериев, как периодичность, измеренная / неизмеренная сеть, тарификация и т. Д.].
Они вообще не хотят, чтобы мы выполняли какую-либо работу во время сна. Итак, насколько я могу судить, с тех пор ваш сценарий использования "раз в час" только в лучшем случае. Расписание и "надежда". Тем не менее, Android N имеет более " практичную" (снисходительную) версию режима ожидания, когда окна обслуживания быстрее. Вы можете проверить, я чувствую, что это не так мрачно, как кажется. Политика справедлива: если пользователь показывает намерение взаимодействовать с телефоном, он запускает задания.
ссылка https://www.bignerdranch.com/blog/diving-into-doze-mode-for-developers/