AFNetworking + большие файлы загрузки + возобновление загрузки

Мне нужно скачать файлы > 500 мес с помощью AFNetworking. Иногда время их загрузки составляет> 10 минут, и если приложение находится в фоновом режиме, загрузка не может быть завершена.

Поэтому я хочу попробовать частичные загрузки. Я нашел много ссылок, и это кажется возможным с помощью методов pause ()и возобновления ()в AFHTTPRequestOperation.

На самом деле, я сделал:

  [self.downloadOperation setShouldExecuteAsBackgroundTaskWithExpirationHandler:^{   
    // Clean up anything that needs to be handled if the request times out
    [self.downloadOperation pauseDownload];
  }];

DownloadOperation является подклассом AFHTTPRequestOperation (singleton ).

А в AppDelegate:

- (void)applicationWillEnterForeground:(UIApplication *)application
{
  // resume will only resume if it's paused...
  [[DownloadHTTPRequestOperation sharedOperation] resumeDownload];  
}

Сервер в порядке, чтобы получить новый диапазон в заголовках...

Мои вопросы:

1 )Разве -это хороший способ сделать это? 2 )Нужно ли резюме изменять outputStream (append :NO => append :YES )? Или -им управляет где-то AFNetworking? (не найти)

self.outputStream = [NSOutputStream outputStreamToFileAtPath:self.filePath append:YES];

Что-то вроде этого (в DownloadHTTPRequestOperation):

- (void)pauseDownload
{
  NSLog(@"pause download");
  [self pause];
}

- (void)resumeDownload
{
  NSLog(@"resume download");
  self.outputStream = [NSOutputStream outputStreamToFileAtPath:self.filePath append:YES];
  [self resume];
}

Спасибо за вашу помощь.

6
задан alex.bour 20 June 2012 в 15:48
поделиться