Тайм-аут для фоновых сервисов Android на уровне API 26

Android Oreo ввел новые ограничения для фоновых сервисов. Док утверждает

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

(ударение добавило меня)

Как долго это "несколько минут"?

2 ответа

Определите ваше приложение в качестве панели запуска и замените панель запуска по умолчанию (деактивируйте ее) устройства. Система запуска будет автоматически перезапущена системой в случае сбоя. Поскольку приложение запуска будет вашим приложением, оно будет автоматически перезапущено

Добавьте в свой манифест (как описано здесь):

<intent-filter>
  <action android:name="android.intent.action.MAIN" />
  <!-- The following two intent-filters are the key to set homescreen -->
  <category android:name="android.intent.category.HOME" />
  <category android:name="android.intent.category.DEFAULT" />

</intent-filter>

Если вы используете библиотеку залпов для API вызовов, вам нужно добавить следующий код

   int socketTimeout = 30000;//30 seconds - change to what you want
    RetryPolicy policy = new DefaultRetryPolicy(socketTimeout, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
    request.setRetryPolicy(policy);

    APIController.getInstance(context).addRequest(request, TAG);
Другие вопросы по тегам