2014-01-28 5 views
0

Я использую AFHTTPRequestOperation для загрузки файла. Но при приостановке и возобновлении операции api дает неверный подсчет прогресса. Я загрузки данных с помощью следующей кодAFNetworking дает неверный подсчет хода

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:str]]; 
_downloadOperation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; 
_downloadOperation.outputStream = [NSOutputStream outputStreamToFileAtPath:strFilePath append:YES]; 

[_downloadOperation setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) { 

    NSLog(@"Progress %lld",totalBytesRead * 100/totalBytesExpectedToRead); 

}]; 

[_downloadOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { 

    NSLog(@"downloaded %@",operation.request.URL); 


} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 

    NSLog(@"failed"); 

}]; 
[_downloadOperation start]; 

приостановить операцию, когда пользователь переходит в фоновом режиме,

- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 
    if ([objAPI.downloadOperation isExecuting]) 
     [objAPI.downloadOperation pause]; 
} 

и возобновить работу, когда пользователь заходит на переднем плане

- (void)applicationWillEnterForeground:(UIApplication *)application 
{ 
    if ([objAPI.downloadOperation isPaused]) 
     [objAPI.downloadOperation resume]; 
} 

Пример: Если операция приостановлена ​​с ходом 20%, при возобновлении она начинается с 20%, но заканчивается на 120%. Другими словами, подсчет прогресса идет некорректно после приостановки операции.

Пожалуйста, помогите мне решить эту проблему

ответ

1

Существует родственный вопрос, который может вызвать проценты при использовании AFURLSessionManager некорректным.

Запрос на удаление по телефону https://github.com/AFNetworking/AFNetworking/pull/1786 может исправить эту проблему.

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