iOS - Фоновые службы, когда приложение закрыто - PullRequest
1 голос
/ 18 апреля 2019

Работают ли функции фонового режима, такие как Фоновая выборка и Обновление местоположения, если приложение закрыто?Или это работает только если приложение входит в фоновый режим?

Спасибо

Ответы [ 3 ]

3 голосов
/ 18 апреля 2019

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

Для фоновой выборки установите UIApplication.shared.setMinimumBackgroundFetchInterval(3600) в методе didFinishLaunching, реализуйте метод performFetchWithCompletionHandler, и включите Фоновую выборку в режимах фона . Обратите внимание, чтобы сделать это как можно быстрее, и вызовите завершениеHandler как можно скорее.

Подробнее о Обновление приложения с помощью фонового приложения Обновить здесь

Для обновлений уведомлений вы также должны установить для свойства allowsBackgroundLocationUpdates вашего объекта CLLocationManager значение true, а включить обновления местоположения в фоновых режимах .

Подробнее о Обработка событий местоположения в фоновом режиме здесь

1 голос
/ 18 апреля 2019

Фоновая выборка и обновление местоположения работают, если приложение закрывается?Или это работает, только если приложение входит в фоновый режим?

Это зависит от того, какой тип location service вы использовали в проекте.Ниже приведен анализ всех видов услуг определения местоположения.

Стандартная служба определения местоположения: Если вы внедрили стандартную службу определения местоположения, она будет работать только для состояний background и foreground.

СущественноОбновления местоположения : Если вы внедрили значительные обновления местоположения, то это будет работать и для состояний background, foreground и terminate.

Мониторинг региона: Если вы внедрилизначительные обновления местоположения, тогда он будет работать и для состояний background, foreground и terminate.

Служба определения местоположения посещений : Если вы внедрили Службу определения местоположения посещений, то она будет работать дляbackground, foreground и terminate также.

enter image description here

См. Ниже ссылки.

Официальный документ Apple

Статья Raywenderlich

1 голос
/ 18 апреля 2019

Background fetch работает как, это позволяет приложению загружать содержимое, когда оно в фоновом режиме. Если приложение закрывается и получает какой-то триггер для загрузки контента, оно фактически просыпается, выполняя приложение в фоновом режиме и загружая содержимое. Пожалуйста, смотрите описание Apple на этом ниже.

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

Здесь предыдущие режимы относятся к «Background fetch, Audio and AirPlay, Location updates и другим режимам Bacground приложения»

Пожалуйста, обратитесь Документ Apple о фоновом исполнении. См. "Declaring Your App’s Supported Background Tasks" для получения дополнительной информации о различных режимах фона.

Обновление местоположения работает по-другому. Есть несколько сервисов Apple, доступных для получения местоположения.

Significant Location service: работает во всех режимах. Передний план, Фон и даже в завершенном режиме.

Standard Location service: работает только в режимах FG и BG. Не работает, когда приложение находится в режиме завершения.

Подробнее о расположении в BG см. Обработка событий местоположения в фоновом режиме документ.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...