2016-12-05 5 views
0

Я работаю над приложением чата. Если я открою чат и начну загрузку образа, который является onClick() методом этого контроллера просмотра чата, как я могу продолжать загрузку этого изображения в фоновом режиме даже после того, как View закрыт (отброшен назад). Я видел это в WhatsApp. В настоящее время я использую Alamofire для загрузки изображения.Как запустить сетевой процесс в фоновом режиме после закрытия View?

+0

Хёрд фоновых сеансов NSURLSession введено в прошивке 8 ?? Он был разработан и предназначен для загрузки контента в фоновом режиме, чтобы загрузить контент, даже если приложение убито между ними :) –

ответ

1

Сначала Вы должны видеть Apple's documentation

Что делать, если ваша задача общего назначения может быть завершена менее чем за 3 минуты, используйте [UIApplication beginBackgroundTaskWithName].

В противном случае, если задача связана с сетью, используйте NSURLSession.

Подробнее описаны в the link.

1

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

let backgroundSession = URLSessionConfiguration.background(withIdentifier: "abcd") 
let session = URLSession(configuration: backgroundSession) 


let url = URL(string: "abcd") 
session.downloadTask(with: url!, completionHandler: { (url,response,error) in 

}).resume() 
  • Убедитесь, что вы используете уникальный идентификатор,
  • Предпочитают с использованием делегатов NSURLsession чем заканчивания блоков, которые также называют в качестве пользовательских делегатов в документации, я дин хотел написать готовый код, следовательно, хранится завершение блок
  • Если ваше приложение должно обрабатывать какое-то авторизации затем обрабатывать didRecieveChallenge и других делегатов, а также :)
  • Если ваше приложение должно иметь дело со сценарием истечения сессии обрабатывать делегаты обрабатывать application:handleEventsForBackgroundURLSession:completionHandler: и URLSessionDidFinishEventsForBackgroundURLSession: также :)

День кодирования :)

 Смежные вопросы

  • Нет связанных вопросов^_^