cached_network_image 依赖于flutter_cache_manager
一个CacheManager,用于下载缓存目录中的文件
应用程序。可以更改文件保存时间的各种设置。
工作原理
默认情况下,缓存文件存储在应用程序的临时目录中。这意味着操作系统可以随时删除文件。
有关文件的信息使用 sqflite 存储在数据库中。数据库的文件名是cacheManager的key,所以它必须是唯一的。
此缓存信息包含文件有效之前的结束日期以及与 http 缓存控件一起使用的 eTag。
方法
removeFile 从缓存中删除一个文件。
emptyCache 从缓存中删除所有文件。
例子
void _clearCache() {
DefaultCacheManager().emptyCache();
}
如果您希望能够在某个时间后删除图像,则必须实现一个自定义缓存,在给定的天数后删除图像。
来自文档 TL:DR
class CustomCacheManager extends BaseCacheManager {
static const key = "customCache";
static CustomCacheManager _instance;
factory CustomCacheManager() {
if (_instance == null) {
_instance = new CustomCacheManager._();
}
return _instance;
}
CustomCacheManager._() : super(key,
maxAgeCacheObject: Duration(days: 7),
maxNrOfCacheObjects: 20);
Future<String> getFilePath() async {
var directory = await getTemporaryDirectory();
return p.join(directory.path, key);
}