AFNetworking 2.0 Как да възобновя отменено изтегляне

Пренаписвам мрежовия код на приложението си към AFNetworking 2.0, използвайки AFHTTPSessionManager като основен клас. Искам да внедря повторно текущото си внедряване на изтегляне, но не успявам да внедря отново старото си поведение.

Текущо изпълнение:

  • Изтеглете файл в папката tmp
  • Ако изтеглянето е успешно, преместете файла към целевия път
  • Ако изтеглянето е неуспешно/отменено, оставете изтеглените данни в папката tmp
  • Ако потребителят иска да възобнови изтеглянето (започва изтеглянето отново), проверете папката tmp и продължете изтеглянето от позицията, където е било прекратено последното изтегляне

Текущ подход:

За да започна изтеглянето, използвам метода AFURLSessionManager downloadTaskWithRequest:progress:destination:completionHandler:. Ако изтеглянето е завършено, дестинацията и блокът completionHandler се извикват и всичко е наред. Но ако отменя задачата, се извиква само блокът completionHandler и не мога да намеря позицията на вече изтегления файл, който е необходим, за да възобновя изтеглянето на правилната позиция. За да възобновя изтеглянето, бих използвал метода downloadTaskWithResumeData:progress:destination:completionHandler:. Но за да получа вече изтеглените данни, имам нужда от пътя на tmp файла за изтегляне.

Въпрос: Как мога да получа пътя на прекратения файл за изтегляне? Или как мога да възобновя това изтегляне, без да изтегля отново всички данни?


person Noroxs    schedule 09.11.2015    source източник


Отговори (1)


NSURLSessionDownloadTask има метод cancelByProducingResumeData:. Това ще предложи обект с данни за възобновяване, който е необходим за възобновяване на изтеглянето.

Възможно е да запишете тези данни за автобиографията във файл и да ги възобновите по-късно с downloadTaskWithResumeData:progress:destination:completionHandler.

person Noroxs    schedule 09.11.2015