我需要下載文件> 500 Mo與AFNetworking。 有時,下載它們的時間大於10分鐘,如果應用程序在後臺,則下載無法完成。AFNetworking +大的下載文件+恢復下載
所以我想嘗試部分下載。我發現了很多鏈接,並且這似乎可以通過AFHTTPRequestOperation上的pause()和resume()方法來實現。
其實,我所做的:
[self.downloadOperation setShouldExecuteAsBackgroundTaskWithExpirationHandler:^{
// Clean up anything that needs to be handled if the request times out
[self.downloadOperation pauseDownload];
}];
DownloadOperation是AFHTTPRequestOperation(單身)的子類。
而且在AppDelegate中:
- (void)applicationWillEnterForeground:(UIApplication *)application
{
// resume will only resume if it's paused...
[[DownloadHTTPRequestOperation sharedOperation] resumeDownload];
}
服務器即可得到頭的新範圍...
我的問題:
1)是-T的好辦法嗎它呢? 2)簡歷是否需要更改outputStream(追加: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];
}
感謝您的幫助。
BTW AFNetworking也是 「非ARC」 – pahan
AFNetworking現在啓用ARC。 – tangqiaoboy