iOS后台下载不起作用

时间:2016-12-19 16:54:12

标签: ios objective-c

我正在为我的应用程序实现多个图像下载(至少4000多个图像),为此,我一直在寻找最佳实践,我找到的解决方案是使用具有背景的NSURLSession配置,我做了我在示例中找到的所有内容,但是,不能在我的真实设备中工作。

我在下载完成后进行了测试显示本地通知,当我处于调试模式时,通知显示完美,但是当我拔下设备时,通知无效。

注意:调试中的内存消耗很低,但是能量影响很大,操作系统可能会终止进程以防止丢失?

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

为了下载图片,我强烈推荐SDWebImage。它是一个非常强大的库,已经维护了很长时间,应该能够做你想要的一切。

即使只是下载图片,也很简单:

SDWebImageDownloader *downloader = [SDWebImageDownloader sharedDownloader];
[downloader downloadImageWithURL:[NSURL URLWithString:@"https://www.example.com/example.png/"]
                         options:0
                        progress:^(NSInteger receivedSize, NSInteger expectedSize) {
                            NSLog(@"Image download %.02f%% complete.", (CGFloat)receivedSize/(CGFloat)expectedSize * 100);
                        }
                       completed:^(UIImage *image, NSData *data, NSError *error, BOOL finished) {
                           if(image && finished) {
                               NSLog(@"The image has finished downloading!");

                               //Perform your image related code here
                           }
                       }];

您可以将它与background tasks一起用于您的用例。