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

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

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

Ответ 1

Это вызвано модификацией "Serialize running of background services" для ActivityServices.

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

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

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

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