Подтвердить что ты не робот

Запуск фоновых сервисов в iOS

Мне нужно закодировать приложение iOS, которое отправляет данные на сервер каждые 30 минут. Может ли это работать, когда приложение находится в фоновом режиме? Насколько он надежный?

4b9b3361

Ответ 1

Невозможно постоянно выполнять задачи в фоновом режиме в тот промежуток времени, который вы запрашиваете. Вы можете запросить конкретное разрешение через соединение с разработчиком, но я должен предупредить вас, что вам понадобится очень веский аргумент. Я включил приведенную ниже документацию, возможно, ваш запрос относится к одной из групп, которая может работать постоянно. Или, может быть, вы могли бы использовать один из длительных фоновых потоков и адаптировать его таким образом, чтобы он выполнял задачу, которую вы пытаетесь выполнить.

Непосредственно из документации Apple:

Реализация долгосрочных фоновых задач

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

  • Приложения, которые воспроизводят звуковой контент для пользователя в фоновом режиме, например приложение музыкального проигрывателя
  • Приложения, которые постоянно информируют пользователей о своем местонахождении, такие как навигационное приложение
  • Приложения, которые поддерживают передачу голоса по Интернет-протоколу (VoIP). Новостные приложения, которые необходимо загружать и обрабатывать новый контент.
  • Приложения, которые получают регулярное обновление от внешних аксессуаров

Приложения, которые реализуют эти сервисы, должны декларировать сервисы, которые они поддерживают, и использовать системные инфраструктуры для реализации соответствующих аспектов этих сервисов. Объявление сервисов позволяет системе узнать, какими сервисами вы пользуетесь, но в некоторых случаях именно системные каркасы фактически препятствуют приостановке вашего приложения.

~/Конец строки

Ответ 2

В iOS7 введены новые API многозадачности, благодаря которым можно запускать фоновое задание на бесконечную длительность. Apple рекомендует использовать NSURLSession API, который создает фоновый сеанс и переносит передачи

В iOS7 также представлены новые UIBackgroundModes, которые включают "Фоновая выборка" и "удаленные уведомления", которые помогают выполнять фоновые службы

Ответ 3

Нет способа сделать это как сервис, кроме некоторых особых случаев, предоставляемых ios, как сказал https://stackoverflow.com/users/1515108/im-lp. Но вы можете имитировать его. Это сообщение ответит как:

fooobar.com/info/403792/...

Я надеюсь, что он поможет!