Как долго "ограничение времени выполнения JobService" упоминается в документах Jobintentservice для Android?
При преобразовании приложения, чтобы быть готовым для Android Oreo, я прочитал документы на JobIntentService
Вот здесь .
Там я нахожу (важная часть подчеркнута):
При работе в качестве предварительного вывода сервиса, нормального исполнения услуги семантика применяется: [...] При выполнении в качестве задания типичная служба JobService будет действовать ограничение по времени выполнения, после чего задание будет остановлено (чисто, не убивая процесс) и перепланировал, чтобы продолжить его исполнение позже.
Если я посмотрю на документированные ограничения, там нет ни слова о каких-либо ограничениях времени выполнения. Также JobScheduler
не упоминает ничего.
- Является ли это временным ограничением, о котором я просто не должен беспокоиться?
- это без документов?
- или ограничение по времени выполнения больше не существует?
- или мне придется перепроектировать свои службы таким образом, чтобы они могли быть прерваны и перезапущены в любой момент времени? Лучший практики?
1 ответ:
Как долго "ограничение времени выполнения JobService" упоминается в документах Jobintentservice для Android?
На практике кажется, что это 10 минут. Первоначально я определил это путем тестирования, но кто-то из IIRC указал на ограничение в исходном коде.
Если вы действительно уверены, что ваша работа будет выполнена за меньшее время, да, по крайней мере на данный момент.Является ли это временным ограничением, о котором я просто не должен беспокоиться?
Так ли это недокументированные?
Да.
Он существовал, когда я проверял его в последний раз.Или ограничение по времени выполнения больше не существует?
Ну, в идеале, да, особенно если вы используете какие-либо ограничения вне времени. Например, если вы говорите, что ваша работа требует подключения к сети, а устройство теряет подключение, ваша работа будет остановлена. Это может произойти задолго до истечения 10-минутного периода времени.Или мне придется перепроектировать свои службы таким образом, чтобы они могли быть прерваны и перезапущены в любой момент времени?
Лучшие практики?
Избегайте периодической фоновой работы в максимально возможной степени.