2013-11-18 2 views
7

Я использую библиотеку Afnetworking 2.0 с NSURLSession.Поддерживает ли AFNetworking 2.0 фоновое задание? - iOS 7

Я нашел в AFURLSessionManager, что они настраивают сеанс с сеансом по умолчанию, поэтому, если мне нужно загрузить изображения в фоновом режиме, я должен установить Session с настройкой фона.

Итак, я должен изменить библиотеку AFNetworking для этого или есть какой-либо другой способ для этого в AFNetworking 2.0.

+0

вы посмотрите на [UIImageView + AFNetworking] (http://cocoadocs.org/docsets/AFNetworking/2.0.3/Categories/UIImageView+AFNetworking.html)? – laucel

ответ

3

От Using NSURLSession:

Класс NSURLSession поддерживает фоновые переводы в то время как ваше приложение приостановлено. Фоновые передачи предоставляются только сеансами, созданными с использованием объекта конфигурации фонового сеанса (который возвращается вызовом backgroundSessionConfiguration:).

Вы должны настроить AFHTTPSessionManager использовать конфигурацию фона сеанса, если вы хотите сделать это:

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration backgroundSessionConfiguration:@"com.myApp.backgroundDownloadSession"] 
AFHTTPSessionManager *backgroundManager = [[AFHTTPSessionManager alloc] initWithSessionConfiguration:configuration]; 

AFNetworking установит себя в качестве делегата. Из документов NSURLSession:

[T] он делегат будет сохраняться до тех пор, после того, как делегат был послал URLSession:didBecomeInvalidWithError: сообщение

В результате, ваш менеджер будет придерживаться вокруг тех пор, пока эта сессия делает ,

два примечания:

  1. Вы, вероятно, следует использовать использовать AFHTTPSessionManager отдельный фоновых передач (большие загрузки и т.д.) Вы не хотите, буквально все запросы, которые будут назначены на фоне URL сеанса ,

  2. В случае, если вы хотите получить ответ без AFNetworking, обратите внимание, что идентификатор сеанса фона («com.myApp.backgroundDownloadSession» в моем примере кода):

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

+0

@yasirmturk Что такое iOS 8 - только об этом решении? 'ackgroundSessionConfiguration:' на самом деле не рекомендуется в iOS 8. –

+0

жаль, что я думал, что это 'backgroundSessionConfigurationWithIdentifier' – yasirmturk

+0

@yasirmturk Это нормально. –

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