为了创造更好的用户体验,我想在智能手机的高清上缓存图像(或其他文件,如文本文件)。我将实现的一些功能:
现在,我想知道:
为了映射本地文件(在缓存中)的URL,我只想在某处定义“缓存”文件夹,并将文件添加到“缓存/”+“URL”位置(没有http的URL) ://部分)。然后检查文件是否已经缓存非常简单。我也可以使用一个字典并将其加载到内存中,但是我需要序列化它并且我不确定它是否会在有大量条目时增加或减少性能。
谢谢, 马特
答案 0 :(得分:0)
您可以使用SQLLite而不是序列化对象,这将导致一组更可靠的静态方法/函数,用于跟踪您下拉的内容,发生的日期,文件的路径等。以及他们保留在本地设备上的Cache的首选项。
组件商店中的sqllitenet可以帮助您。
另外,使用SQLLite的好处就是那些助手......假设他们使用的是基本的System.IO,会跨越两个平台.Xamarin.Android和Xamarin.IOS。我认为序列化可以在两个平台上运行,你的想法会起作用,但我真的认为SQLLite实现会更清晰..在内存使用方面,当你确实需要执行清理时..你用来保存的那个文件“一切“可能会变大,你必须将它加载到内存中..而使用SQLLite,你可以查询..找到你需要修改/删除/或同步的相关内容,并这样做。
我不相信在Xamarin中还有什么可以处理你正在寻找的东西。除非你正在使用Drop Box Sync ..
答案 1 :(得分:0)
Redth有一个缓存图像存储 - https://github.com/Redth/MonoTouch.UrlImageStore - 类似的东西(可能是相同的代码)包含在MonoTouch.Dialog中。