SDWebImage - 避免在进入后台时清除图像缓存

时间:2013-12-03 14:16:41

标签: ios objective-c ios7 sdwebimage image-caching

我在我的应用中使用SDWebImage来加载和缓存来自网络的图片。它就像一个魅力,但唯一的问题是每当我退出我的应用程序时,即使是暂时的,图像缓存也会被清除,所有图像都必须再次下载。当Internet连接缓慢时,这尤其成问题。我想在返回应用程序时保留图像。有谁知道如何实现这个目标?

2 个答案:

答案 0 :(得分:2)

转到SDImageCache.m并查找方法 - (id)initWithNamespace:(NSString *)ns 你会在那里找到这样的代码:

// Subscribe to app events
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(clearMemory)
                                                 name:UIApplicationDidReceiveMemoryWarningNotification
                                               object:nil];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(cleanDisk)
                                                 name:UIApplicationWillTerminateNotification
                                               object:nil];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(backgroundCleanDisk)
                                                 name:UIApplicationDidEnterBackgroundNotification
                                               object:nil];

如果您愿意,可以随意发表评论或更改任何内容。我可以选择关闭这些代码行。

答案 1 :(得分:1)

请确保您未设置maxCacheSize的{​​{1}},如果在应用转到后台时设置了它,则会清除缓存文件以适合[SDImageCache sharedImageCache]

maxCacheSize方法中,您可以看到在删除文件之前进行检查

cleanDisk

所以如果没有设置if (self.maxCacheSize > 0 && currentCacheSize > self.maxCacheSize) { // ... } ,它将什么都不做。