Доступ к сети фонового приложения iOS - PullRequest
11 голосов
/ 08 марта 2012

У меня есть приложение, которое требует отслеживания местоположения, и я думаю, что оно полностью вписывается в одну из допустимых фоновых моделей. Тем не менее, мне нужно отправлять сообщения в сетевой сервис, когда происходят значительные изменения местоположения. Я видел записи о том, что доступ к сети запрещен при фоновой обработке, но я не читал об этом в документах Apple.

Кто-нибудь знает, является ли кошерным (в отношении политики Apple) случайное и очень быстрое обновление сети в фоновом режиме?

Ответы [ 3 ]

12 голосов
/ 08 марта 2012

Хороший вопрос, согласно документации Apple, в фоновом режиме разрешено только следующее использование, и каждая служба должна быть зарегистрирована:

  • audio - приложение воспроизводит слышимый контент для пользователя в фоновом режиме. (Этот контент включает потоковое аудио или видео контент используя AirPlay.)
  • местоположение - приложение информирует пользователей об их местоположении, даже когда оно работает в фоновом режиме.
  • voip - приложение позволяет пользователю совершать телефонные звонки с использованием подключения к Интернету.
  • newsstand-content - приложение представляет собой приложение Newsstand, которое загружает и обрабатывает содержимое журнала или газеты в фоновом режиме.
  • external-accessory - приложение работает с аппаратным аксессуаром, который должен регулярно доставлять обновления через External. Каркас аксессуаров.
  • bluetooth-central - приложение работает с аксессуаром Bluetooth, который должен регулярно доставлять обновления через CoreBluetooth framework.

Кроме этих сервисов, вы можете создать задачу конечной длины в фоновом режиме , которая фактически дает вам возможность завершить сетевой процесс.

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

Что касается вашего вопроса, то не совсем понятно, можете ли вы или нет установить быстрое сетевое соединение, если у вас есть служба определения местоположения, работающая в фоновом режиме. Я бы сказал ДА для короткого соединения, но не совсем уверен. Начиная с iOS 4.0, это использование было запрещено и ясно в документации, теперь эта часть была удалена.

2 голосов
/ 08 марта 2012

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

НЕТ Если ваше приложение не попадает в категорию VoIP, музыка или GPS; тогда вы не можете работать в фоновом режиме.

подробнее здесь: Обновите мое приложение, когда оно в фоновом режиме


Вы можете использовать ASIHTTPRequest .

ASIHTTPRequest имеет свойство setShouldContinueWhenAppEntersBackground:. по умолчанию NO, вы можете включить YES, чтобы у вас был фоновый сетевой процесс.

1 голос
/ 25 октября 2012

Документация Apple кажется немного неясной относительно строгой политики.В магазине приложений определенно есть приложения, которые время от времени выполняют фоновые сетевые вызовы в качестве приложения на основе определения местоположения.Примером является приложение Geoloqi.

...