Как режим ожидания влияет на фоновые / передние службы, с / без частичных / полных wakelocks?
Это простой вопрос, так как на G+ ( здесь) есть огромный пост об этом, а в официальных документах нет информации ( здесь):
Что происходит со службами приложения, когда устройство переходит в режим ожидания?
Что это делает с фоновыми / приоритетными службами (связанные / не связанные, запущенные / не запущенные), с / без частичных / полных пробуждений?
Что бы вы сделали, например, для создания службы, которая воспроизводит аудиопоток, пока экран устройства выключен? Что делать, если аудиопоток не из локального файла, а из сети?
Видя, что разработчик Google подал заявку:
Приложения, на которых запущены службы переднего плана (с соответствующим уведомлением), не ограничены дозой.
- после этого много дискуссий, утверждая, что это не совсем верно, я думаю, что довольно сложно понять, что должны делать специальные приложения для фоновых операций.
1 ответ
Предполагается, что Doze не затрагивает процессы с текущим запущенным сервисом переднего плана. Связанный / несвязанный, запущенный / не запущенный, и блокировка wakelocks не влияют на этот процесс внесения в белый список.
Однако существует проблема на устройствах Android M, когда службы переднего плана не помещены в белый список должным образом, когда служба переднего плана находится в том же процессе, что и активность верхнего уровня, и неправильно задрапирована.
Исправление доступно в AOSP и будет включено в сборки Android N. Это будет зависеть от OEM-производителей, чтобы интегрировать этот патч в любые сборки Android M, которые они производят.