Как выполнить простое фоновое задание на Xamarin iOS - PullRequest
0 голосов
/ 10 октября 2019

В нашем приложении пользователи могут отслеживать и отправлять записи, которые они записали. Мне нужен простой способ создания задачи в iOS. Я уже создал и протестировал это на Android. Он работает через:

  • Пользователь выбирает поездки, которые он хотел бы отправить.
  • Синхронизирует касания, и создается служба переднего плана, которая синхронизирует поездки с нашим API.
  • Эта служба будет продолжать синхронизировать поездки, даже если приложение будет переведено в фоновый режим или даже закрыто.

Короче говоря, как мне добиться этого на iOS 9-13?

Я уже пытался создать фоновые задачи, используя:

nint taskID = UIApplication.SharedApplication.BeginBackgroundTask (() => {});

Однако это дает только задачу 2минут, чтобы бежать, что не достаточно. Я посмотрел на NSURlSessions, но они требуют URls, тогда как мы используем нашу собственную оболочку API.

Я бы просто хотел создать способ создания задачи, когда пользователь нажимает «Синхронизация», и эта задача также способнабегать в фоновом режиме. Я не слишком обеспокоен, если задача отменяется, когда приложение закрывается, хотя, если возможно, хотел бы, чтобы задача продолжалась.

Спасибо.

Ответы [ 3 ]

0 голосов
/ 11 октября 2019

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

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

Вот и все, я понимаю ваше желание, но это только так- желание, а не то, что может быть реальным.

0 голосов
/ 11 октября 2019

Этот сервис будет продолжать синхронизировать поездки, даже если приложение будет переведено в фоновый режим или даже закрыто.

Во-первых, если ваше приложение is closed в iOS, я уверен,do не может запускать какие-либо службы в фоновом режиме.

Тогда, если ваше приложение is put into background, Apple имеет строгое ограничение на запуск приложений в фоновом режиме. background-tasks имеет ограничения по времени, вы можете прочитать документ для получения дополнительной информации. Есть раздел о обработка-фон-задача-время-ограничения , который вы можете попробовать.

Кроме того, Apple позволяет некоторым конкретным приложениям запускаться в фоновом режиме, которые должны выполнять задачи вфон. Например, приложение, которое должно play music в фоновом режиме, update location в фоновом режиме и т. Д. Вы можете увидеть Категории регистрации приложений здесь . Если ваше приложение удовлетворяет установленным требованиям, вы можете подать заявку на фоновое разрешение на запуск в системе.

См .: Фоновая обработка в Xamarin.iOS

0 голосов
/ 10 октября 2019

Я бы посоветовал вам использовать Блестящий для достижения этого.

...