繁体   English   中英

保留在线服务中的用户数据,以便在Android应用程序中“离线查看”

[英]Persisting user data from online services for “offline viewing” on Android applications

我有一个网络服务器,可以托管我在Android平板电脑上构建的应用程序的数据。 数据变化相当频繁,但是我意识到平板电脑和电话不一定总是与数据连接,这对用户已经可以访问他们以前查看过的数据将是一件好事。

我希望应用程序在可能的情况下从Web服务器提取数据,在不可能的情况下,从电话上的SQLite服务器(或任何适当的方法)提取数据。

是否已为此设置实施或实践? 如果是这样,实现这种功能的当前方法是什么? 可以将这种相同的方法应用于数据更改,然后在数据连接恢复时推送这些更改吗?

不知道这是否有帮助,但是我有一个类似的要求,并找到了一个名为memento数据库的android应用,该应用基本上具有一个同步按钮,因此它使用手机存储数据,然后同步到Google驱动器电子表格,还可以更新电子表格并当用户在android上单击“同步”时,它将更新其本地数据库。 我不确定这是否适用于多用户环境,但您也许可以剖析该应用程序或使用类似方法?

问候

(请注意,我与我提到的应用完全无关)

据我所知,总体上并没有一个通用的框架。 这里有很多关于图像缓存的文章,这些文章可能很容易适应,但我不了解完全概括或专门用于脱机查看的内容。 就是说,大多数解决方案仅适用于URL和文件,因此,如果您的数据非常简单,则可以相当容易地工作。 这很大程度上取决于您的数据是什么以及您打算如何显示它。 如果它包含要在WebView中显示的网页,那么它可能会很烦人,因为您必须遍历链接(包括图像,css,javascript等)并将其缓存。 但是,如果您正在使用特定的隔离URL或结构化数据,可以从中轻松解析所有相关URL,那么它会容易得多。

这是一个这样的面向图像的解决方案: https : //github.com/ZaBlanc/WebImageView

通用方法相当简单。 可能是这样的:

  • 每当您尝试“获取” URL时,总是会从缓存中读取它
  • 如果您的缓存有它,那么您可以愉快地使用它并随身携带
  • 如果您的缓存没有缓存,则必须排队请求以异步下载文件
  • 文件下载完成后,发出某种通知以告知应用程序进行处理。

您还必须处理诸如缓存过期策略之类的问题,以及如何显示数据,但这可能只是一个开始。

如果您正在考虑双向同步,那么它将变得更加困难。 您必须考虑锁定和冲突(两个人可以同时更新同一个项目吗?如果是,那么会发生什么事情?),原子性(您是否只有在两个项目都被更新/添加时才有意义的相关项目?),数据验证(如果用户发送错误数据该怎么办)以及更多其他功能。 这可能就是为什么还没有人提出任何(我知道的)东西的原因。 这会很有用,但是会变得非常复杂,并且确实涉及客户端和服务器工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM