【问题标题】:Managing offline XML data管理离线 XML 数据
【发布时间】:2014-07-15 19:28:15
【问题描述】:

我正在开发一款大部分时间都处于离线状态的应用。它连接到服务器,获取一些 XML 格式的数据,然后在应用程序存在的剩余时间内使用这些数据。数据会定期手动更新。

此数据用于填充 ListView 并将信息放入动态创建的活动中。到目前为止,我一直在直接访问和使用 XML 文件,但使用起来有点痛苦。只是感觉有点笨拙和错误。

我的问题更多是关于工作流程的。有没有一种更智能的方法来做到这一点?我应该将这些数据保留为 XML 格式并在每次需要时对其进行解析,还是应该在初始下载时将此 XML 转换为 SQLite 或其他什么?

这里显然没有一个正确的答案。但总的来说,我对 Java/Android 还很陌生,我很想知道还有哪些其他解决方案可能对此更有效。

有什么建议吗?

【问题讨论】:

  • The data is periodically updated manually. ??由谁?服务器?用户?如何?手动?
  • 如果一切都如你所愿,则没有理由添加更多代码。除非它很慢,并且您认为可以使用数据库加速应用程序。

标签: android


【解决方案1】:

如果 xml 不是很大,那么您可以将其保存在应用程序的 cache 文件夹中,并在每次请求时从那里解析数据。

如果它很大,那么您可以将其保留在 SD Card 上,并在每次请求时从那里解析数据。

在这两种情况下,您都可以解析 xml 数据并将其放入您的 SQlite(如果它适合您)。此外,当您获得更新版本时,如果不需要,请删除旧版本。

【讨论】:

  • 感谢您让我了解缓存文件夹。我一直把它放在资产中,但缓存更有意义。无论如何它都不是很大。我现在只使用少量数据样本,但我预计这些文件最终不会超过 50-100KB。那么放入 SQLite 是一个不错的解决方案吗?我不希望性能成为直接访问 XML 文件的问题,因为它们太小了.. 但我正在努力让自己的其余编码更容易。解析一个 XML 文件需要相当多的代码。
  • @user1003916 是的,在这种情况下,将值放入数据库会更容易。性能不会成为问题。
【解决方案2】:

为什么不使用 SharedPreferences 类来存储这些信息?有很多帖子描述了如何做到这一点。

Android: Save array to app data

Array/Data Storage Options

How to use SharedPreferences in Android to store, fetch and edit values

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多