Я работаю над приложением для музыкального проигрывателя и замечаю странное поведение на устройствах Android 9, когда пользователь включает настройку «Ограничение фона» (Настройки -> Приложения -> [Имя приложения] -> Батарея -> Фон Ограничение). < /P>
Вот что я делаю:
Я начинаю свой сервис музыкального проигрывателя, позвонив в Service.startService (), затем установите его на передний план через службу. startForeground () пока Мое приложение находится на переднем плане. < /p>
Вот что я вижу, когда включено «Ограничение на фоне»:
1) service.startforeground () не будет Размещение уведомления
2) моя служба переднего плана убит ОС в течение минуты после того, как мое приложение перешло на фоновой
1) «Service.StartForeground () не допускается из-за ограничения BG» при вызове Service.StarteRound ()
2) «Служба остановки из-за холостого хода», когда мое приложение автоматически погружается в ОС < /p>
Вот мой вопрос:
Я подумал, что весь смысл службы переднего плана заключается в том, чтобы обеспечить обработку фоновой обработки со знаниями пользователя (постоянное уведомление); Действительно ли настройка «Ограничение фона» действительно предназначена для того, чтобы запретить всю фоновую деятельность? Я заметил, что их образцы проекта не убивают, как мое приложение. После копания я заметил, что это потому, что они связывают свои услуги и никогда не рассчитывают на Activity.onpause (). Согласно документам Google, связанные сервисы не подлежат таким же ограничениям фона. Это действительно решение моей проблемы? Кажется немного хакерским/хрупким.
Заранее спасибо за помощь!
Подробнее здесь: https://stackoverflow.com/questions/556 ... pp-setting