Как получить данные, когда приложение iOS находится в фоновом режиме - PullRequest
0 голосов
/ 27 марта 2020

У меня есть iOS разработчиков приложений в Xamarin.Forms. Я хочу получить запрос (с сервера) и хочу выполнить его в приложении iOS, когда он находится в минимизированном / фоновом режиме. Я уже поиграл с опцией «Фоновые режимы», доступной в Info.plist, например «Аудио, трансляция и картинка в картинке», «Голос поверх IP», «Выборка фона», «Обработка фона», но у меня это не сработало.

Если у кого-то есть идеи по этому поводу, то, пожалуйста, помогите мне решить.

Заранее спасибо,

Vivek

1 Ответ

0 голосов
/ 30 марта 2020

Рассмотрение Выполнение задач во время DidEnterBackground .

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

Процесс практически идентичен процессу регистрации длительной задачи. Следующий фрагмент кода иллюстрирует это в действии:

public override void DidEnterBackground (UIApplication application) {
  nint taskID = UIApplication.SharedApplication.BeginBackgroundTask( () => {});
  new Task ( () => {
    DoWork();
    UIApplication.SharedApplication.EndBackgroundTask(taskID);
  }).Start();
}

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

...