Xamarin.ios 从下载缓存中删除图像
我在iOS上使用MvvmCross 3.1.1和MvxImageView MvxImageView从URL加载图像并缓存这些图像。但是,我想更新这些图像,但它会一直加载缓存的图像 即,当使用类似www.lala.dk/bjar.png的Url时。然后从其他地方更新此图像。但是Url保持不变。MvxImageView似乎保留了缓存的图像,而不加载新图像 是否可以删除缓存的图像并强制其从Url重新加载图像 我试着看了一眼Xamarin.ios 从下载缓存中删除图像,xamarin.ios,xamarin,mvvmcross,Xamarin.ios,Xamarin,Mvvmcross,我在iOS上使用MvvmCross 3.1.1和MvxImageView MvxImageView从URL加载图像并缓存这些图像。但是,我想更新这些图像,但它会一直加载缓存的图像 即,当使用类似www.lala.dk/bjar.png的Url时。然后从其他地方更新此图像。但是Url保持不变。MvxImageView似乎保留了缓存的图像,而不加载新图像 是否可以删除缓存的图像并强制其从Url重新加载图像 我试着看了一眼 var service = Mvx.Resolve<IMvxImageH
var service = Mvx.Resolve<IMvxImageHelper<UIImage>>();
但是我找不到任何有用的东西
更新
我得说这让我有点头疼。我发现了如何从文件系统中删除映像,但是有时候映像存储在内存中,因此无法删除。有什么建议可以解决这种情况吗?我最终扩展了复制/粘贴图像缓存-mvvmcross中的MvxImageCache和IMvxImageCache,并添加了这两种方法
public void RemoveUrlFromCache(string url)
{
this.RunSyncOrAsyncWithLock(
() =>
{
Entry entry;
if (this._entriesByHttpUrl.TryGetValue(url, out entry))
{
this._entriesByHttpUrl.Remove(url);
}
this._fileDownloadCache.RequestLocalFilePath(url, (stream) => this.DeleteFile(url, stream),
(exception) => this.ProcessError(url, exception));
});
}
private void DeleteFile(string url, string filepath)
{
if (!string.IsNullOrEmpty(url) && !string.IsNullOrEmpty(filepath))
{
var fileService = Mvx.Resolve<IMvxFileStore>();
fileService.DeleteFile(filepath);
}
}
有了这个,我可以在droidtouch的子类Imageview中调用以下内容
var cache = Mvx.Resolve<IMvxImageCache<Bitmap>>() as ImageCache<Bitmap>;;
if (cache != null)
{
cache.RemoveUrlFromCache(_imageUrl);
}
我会做一个拉取请求,希望他们会接受它或做类似的事情下载缓存目前还没有实现删除单个图像。对解决方法有什么建议吗baron先生。实现它并发出请求,或b。查看它缓存图像的文件夹,然后自己对图像进行核爆。谢谢。我相信我会首先使用核武器我自己的想法如果时间/工作/空间连续体允许的话我会在以后做出正确的实施我必须说这让我有点头疼。我发现了如何从文件系统中删除映像,但是有时候映像存储在内存中,因此无法删除。有什么建议可以解决这种情况吗?