После этого вопроса то же самое относится и к фоновым сетям. В документации очень мало говорится о том, как поддерживать сетевое соединение и работать, пока приложение работает в фоновом режиме с новым VoIP API.
В документации сказано, что для добавления строки VoIP к info.plist
установите ваш канал сигнализации на VoIP с помощью
CFReadStreamSetProperty(readStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);
и ОС автоматически разбудит ваше приложение из фона, когда данные поступают на канал.
Однако это не так. Приложение не просыпается, если в поток поступают новые данные. Если я вручную активирую приложение, то система уведомляет приложение с последним набором данных, поступивших во время приостановки приложения.
Apple заявляет, что при настройке потока для использования VoIP система берет на себя управление базовым сокетом, пока ваше приложение приостановлено. Эта передача обслуживания в систему прозрачна для вашего приложения. Если новые данные поступают в то время, когда ваше приложение приостановлено, система активизирует ваше приложение, чтобы оно могло обработать данные.
Итак, мой вопрос такой же, как в другой теме, которую я упомянул: Что они делают, что мне не хватает?