C# Monotouch/Monodroid-在HD+;检查它们在服务器端是否已更改
为了创造更好的用户体验,我想将图像(或其他文件,如文本文件)缓存在智能手机的高清屏幕上。我将执行的一些功能:C# Monotouch/Monodroid-在HD+;检查它们在服务器端是否已更改,c#,.net,xamarin.ios,mono,xamarin.android,C#,.net,Xamarin.ios,Mono,Xamarin.android,为了创造更好的用户体验,我想将图像(或其他文件,如文本文件)缓存在智能手机的高清屏幕上。我将执行的一些功能: 用于定义缓存大小的选项(如果缓存太大,请删除最旧的文件,直到其低于缓存限制的90%左右) 删除X天内未被访问的文件 联机检查文件是否已更改。目前,我正在考虑在线检索文件大小,并将其与本地文件进行比较(如果更新文件,我认为只有一个小变化,即文件大小完全相同) 现在,我想知道: 是否已经有一个框架可以处理这个问题?我在谷歌上找不到任何东西。我确实发现了一些适用于iOS的东西,比如AFN
- 用于定义缓存大小的选项(如果缓存太大,请删除最旧的文件,直到其低于缓存限制的90%左右)
- 删除X天内未被访问的文件
- 联机检查文件是否已更改。目前,我正在考虑在线检索文件大小,并将其与本地文件进行比较(如果更新文件,我认为只有一个小变化,即文件大小完全相同)
- 是否已经有一个框架可以处理这个问题?我在谷歌上找不到任何东西。我确实发现了一些适用于iOS的东西,比如AFNetworking,但我更喜欢跨平台代码(我也不知道AFNetworking是否能够做到这一点)
- 我还发现了类似ASIDownloadCache的东西:在这种情况下,他们会询问服务器文件是否从X开始被修改过。我发现我可以用myHttpWebResponse.LastModified在C#中做类似的事情。这对静态文件可靠吗
- 如何在本地文件路径上映射URL?(见下文)
Matt您可以使用SQLLite,而不是序列化对象,这将产生一组更可靠的静态方法/函数,用于跟踪您拉下来的内容、发生日期、文件路径等,以及它们在本地设备上保留的缓存首选项 组件存储上的sqllitenet将帮助您实现这一点 使用SQLLite的另一个好处是,这些助手。。假设他们使用basic System.IO,将跨两个平台。。Android和Xamarin.IOS。我想序列化可以在这两种平台上运行,您的想法也可以,但我真的认为SQLLite实现会更干净。。关于内存使用,当您确实需要执行清理时。。您用来保存“所有内容”的文件可能会变大,您必须将其加载到内存中。。而使用SQLLite,您可以查询。。找到需要修改/删除/或同步的相关内容,然后执行此操作
我不相信有什么东西可以处理你在Xamarin寻找的东西。除非您正在使用Drop Box Sync Redth有一个缓存图像存储——类似的东西(可能是相同的代码)包含在MonoTouch.Dialog中