मुझे फ़ाइलों को डाउनलोड करने की आवश्यकता है> 500 एमए AFNetworking के साथ। कभी-कभी, उन्हें डाउनलोड करने का समय> 10 मिनट और यदि ऐप पृष्ठभूमि में है, तो डाउनलोड पूर्ण नहीं हो सकता है।AFNetworking + बड़ी डाउनलोड फ़ाइलें + डाउनलोड फिर से शुरू करें
तो मैं आंशिक डाउनलोड आज़माएं। मुझे बहुत सारे लिंक मिले और यह AFHTTPRequestOperation पर रोकें() और फिर से शुरू() विधियों के साथ संभव प्रतीत होता है।
वास्तव में, मैंने किया था:
[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) है-टी यह 2) क्या फिर से शुरू करने के लिए आउटपुटस्ट्रीम को बदलने की आवश्यकता है (संलग्न करें: NO => संलग्न करें: हाँ)? या यह एएफनेटवर्किंग द्वारा कहीं प्रबंधित किया गया है? (नहीं मिल रहा है)
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 भी है "गैर एआरसी" – pahan
AFNetworking एआरसी अब सक्षम है। – tangqiaoboy