В настоящее время я реализую некоторую логику для чтения из сокета TCP в фоновом режиме.
CFReadStreamRead
функция используется для извлечения некоторых данных из сокета, и на данный момент все работает нормально.
Но мне интересно, как iPhone OS 4.x обрабатывает блокировку операций ввода-вывода в фоновом режиме.Например: функция CFReadStreamRead
может блокироваться часами в ожидании некоторых входящих данных.
Существуют ли какие-либо официальные ограничения, например, 10 минут для фоновых задач?Будет ли мое приложение уничтожено операционной системой iPhone в случае длительной операции блокировки ввода-вывода?
Обратите внимание: я не выполняю функцию блокировки ввода-вывода в фоновой задаче .Сам код находится в методе applicationDidEnterBackground
моего UIApplicationDelegate
.
Само приложение настроено с параметром «voip» в файле Info.plst + CFReadStream настроен в соответствии с рекомендациями Apple с параметром kCFStreamNetworkServiceTypeVoIP
.
Так что в основном это обычный сценарий применения VoIP в фоновом режиме.
Спасибо!