Тайм-аут для фоновых сервисов 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);