我尝试使用
evict()
类中的 NetworkImage
方法从 flutter 缓存中删除单个图像条目,但它一直失败。
这是我如何驱逐的:
final NetworkImage provider = NetworkImage(url);
try {
bool res = await provider.evict();
print("eviction result : $res");
} catch (error) {
print(error.toString());
}
以及我的图像是如何渲染的:
CircleAvatar(
radius: 80,
backgroundImage: NetworkImage(url))),
控制台中打印
flutter: eviction result : false
并且图像缓存不会被删除。知道我错过了什么吗?
我也偶然发现了这个问题,发现你也可以直接从 imageCache 中清除它:
final path = "http://not-a-real-url.com/image.png";
try {
/// Info:
/// The "key" in "imageCache" is an object (!) and not a String.
/// So you need to explicitly wrap your url with e.g. NetworkImage(path)
final res = imageCache.evict(NetworkImage(cachekey), includeLive: true);
print("eviction result : $res");
} catch (error) {
print(error.toString());
}