Документы, похоже, не предлагают никаких гарантий - мне просто интересно, был ли у кого-нибудь опыт загрузки больших объемов данных после того, как пользователь «фон» приложения для iPhone.
Например, запись аудио или видео и их загрузка, пока есть вероятность, что пользователь запустит другое приложение. Разумно ли ожидать, что можно будет загрузить несколько МБ данных в фоновом режиме, возможно, используя VOPI UIBackgroundMode, который должен поддерживать сокеты в активном состоянии?
2 ответа
Во-первых, загрузка всего, что не является данными VoIP, в фоновом режиме VoIP нарушает рекомендации Apple и, вероятно, приведет к отклонению вашего приложения. Но у вас все еще есть возможность использовать обычный API завершения фоновых задач, который дает вашему приложению еще 10 минут (на данный момент это количество может измениться в будущем выпуске) для завершения такой задачи, как загрузка.
Если приложение переднего плана использует большую полосу пропускания, вполне вероятно, что ОС будет отдавать ему приоритет над фоновой задачей.
Конечно, вы не можете рассчитывать на то, что загрузка будет завершена. Если у вас закончится время, система уведомит вас, и вы должны попытаться возобновить загрузку, когда пользователь повторно активирует ваше приложение. Но вы все равно не можете рассчитывать на стабильное интернет-соединение, даже если ваше приложение находится на переднем плане, поэтому я действительно не вижу разницы.
Нет, это невозможно. Я согласен с тем, что это создает проблемы, когда вам нужно выполнить долгую операцию, но это явно невозможно.
Похожие вопросы
Новые вопросы
iphone
НЕ ИСПОЛЬЗУЙТЕ этот тег, если вы не обращаетесь конкретно к iPhone и / или iPod touch от Apple. Для вопросов, не зависящих от оборудования, используйте тег [ios]. Больше тегов, которые нужно рассмотреть, это [xcode] (но только если вопрос касается самой IDE), [swift], [target-c] или [cocoa-touch] (но не [cocoa]). Пожалуйста, воздержитесь от вопросов, касающихся iTunes App Store или iTunes Connect. Если вы используете C #, пометьте [mono].