Фоновая загрузка NSURLSESSION несколько раз

У меня есть это требование,

Мне нужно загрузить список воспроизведения файлов в фоновом режиме. каждый файл представляет собой отдельный URL-адрес в списке воспроизведения. Проблема, я могу начать загрузку второго файла только после завершения первого.

Кто-нибудь сталкивался с этой проблемой раньше.


person user3780181    schedule 12.08.2014    source источник
comment
я подключаюсь к локальному ящику, который может обрабатывать только один запрос за раз. Проблема, с которой я сталкиваюсь, где отправить резюме для второго. Если я сделаю это, URLSessionDidFinishEventsForBackgroundURLSession его nt вызовут, если я вызову его в didFinishDownloadingToURL, приложение не будет рассматривать его как фоновую загрузку, и поток будет приостановлен через 30 секунд.   -  person user3780181    schedule 12.08.2014
comment
Я не проводил исчерпывающего тестирования, но воспроизвел ваше поведение, поскольку запросы, запланированные впоследствии в didFinishDownloadingToURL, не продолжались в фоновом режиме. Единственное, что я мог предложить, это (а) создать новый фоновый сеанс с другим идентификатором для следующей загрузки; или (b) попробуйте поставить в очередь все загрузки и установить HTTPMaximumConnectionsPerHost на NSURLSessionConfiguration на 1. Очевидно, было бы лучше, если бы вы могли настроить сервер так, чтобы он принимал одновременные запросы (поскольку таким образом вы увидите более высокую производительность).   -  person Rob    schedule 12.08.2014
comment
Как насчет установки количества одновременных загрузок на хост равным одному для этого сессию и ставить их всех в очередь одновременно? Если вы добавите новые вещи в фоновом режиме, в конце вашего didFinishDownloading, нет никакой гарантии, что iOS отдаст им приоритет, насколько я понимаю, поскольку это меньше похоже на конкретное действие, инициируемое пользователем.   -  person Matt Gibson    schedule 24.07.2015


Ответы (1)


Опубликуйте уведомление и следите за ним в основной теме. Просто создайте свою собственную очередь запросов и, когда появится уведомление, проверьте очередь на наличие оставшихся запросов и отключите их по мере необходимости.

person john elemans    schedule 23.07.2015