Я занимаюсь разработкой приложения, которое позволяет скачивать файлы с веб-сайтов.Это похоже на HalfTunes приложение из Учебник URLSession: Начало работы * Учебное пособие .
Поэтому я использую NSURLSessionDownloadTask
для загрузки файла.Я инициализировал NSURLSession
, используя
[NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"my_id"]
для поддержки загрузки в фоновом режиме.
Мне не нужна функция паузы / возобновления, но я хотел бы, чтобы загрузка возобновлялась при перезапуске приложения.
Я имею в виду, что если пользователь начинает загрузку (и скажет, что он загрузил 50% файла 1 ГБ), затем убил приложение и затем перезапустил приложение, загрузка должна продолжиться, а не начинаться с нуля.
Документация гласит:
Кроме того, загрузки, использующие фоновую конфигурацию, будут обрабатывать возобновление автоматически, поэтому ручное возобновление необходимо только для не фоновых загрузок.
Это дало мне надежду, чтопрерванные загрузки возобновятся автоматически, как только я создам URLSession
экземпляр, но они этого не сделали.
Кроме того, я попытался вызвать [session getTasksWithCompletionHandler...]
при запуске приложения, чтобы получить массив задач загрузки, а затем resume
их явно, но это приводит к вызову
-(void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error
с ошибкой
Task <82C0568A-038E-46F7-BEF9-9DED2276AD7F>. <1> сбой загрузкис ошибкой Ошибка Domain = NSURLErrorDomain Code = -999 "(null)" UserInfo = {NSURLErrorBackgroundTaskCancelledReasonKey = 0,
Итак, мой вопрос: как мне возобновить закачку при перезапуске приложения?