Вопрос: Моя служба всегда получает Waited достаточно долго для: Ошибка ServiceRecord в Kitkat


У меня есть фоновый сервис, который работает в kitkat, всегда бросая Waited достаточно долго для сообщения ServiceRecord в logcat. Но в предыдущих версиях android мое приложение работает бесперебойно без каких-либо проблем.

Также иногда моя служба автоматически убивается в Kitkat.


12


источник


Ответы:


Это вызвано модификацией «Сериализация работы фоновых служб» для ActivityServices.

Внедрить # 10744011: Сериализовать работу фоновых служб   Добавлен код для менеджера активности, чтобы отслеживать   служб, которые запускают и ограничивают число, которое может   запускаться одновременно. Это только вступает в игру под   конкретные обстоятельства: когда запуск службы является фоном   запрос (поэтому время не важно), и его процесс не   уже работает с высоким приоритетом.

В этом случае у нас есть список служб, которые в настоящее время   запуск, и когда это становится слишком большим, мы начинаем откладывать   запуск будущих услуг до момента запуска   законченный.

Для этого есть несколько важных параметров настройки: сколько   фоновые сервисы, которые мы позволяем запускать одновременно (в настоящее время   1 на устройствах с низким удержанием, 3 на других устройствах), и как долго мы   дождитесь запуска фоновой службы, прежде чем считать ее   более продолжительное обслуживание и перейти к следующему ожидающему   запуск (в настоящее время установлен на 15 секунд).

https://github.com/android/platform_frameworks_base/commit/9210bc85545f31973c957b5179e6a82d05f473c6


11