java - 旅游应用获取数据的好方法是什么

标签 java android xml database location

我目前正在开发的 Android 应用程序遇到了一个小问题。 我有一份在 XML 文件中声明的兴趣点列表。兴趣点看起来像这样:

    <hotel>
    <name>Hotel Atlas</name>
    <latitude>45.612079</latitude>
    <longitude>25.660756</longitude>
    <thumb_url>/hotels/atlas.jpg</thumb_url>
    <phone>039999999</phone>
    </hotel>

我遇到的问题是大约有 200 个兴趣点,每次用户访问该应用程序时,每次都会从在线位置读取 XML,这意味着大量的互联网流量。 XML 在线存储,因此每次我想添加另一个 POI 时我都可以更新它,而不是强制用户更新应用程序。有没有办法将这些数据发送到应用程序而不需要下载整个 XML?

我还没有找到最佳解决方案,因此决定征求一些意见。

谢谢,弗拉德

最佳答案

只有两种可能的方式:

  1. 要么提供包含所有 POI 的静态数据库,要么
  2. 在需要时从网络加载数据。

现在你可以做一件事,用App保持静态数据库。应用程序启动后进行网络调用,如果您在服务器数据库中进行了任何更改,则检查更新的数据。如果服务器数据库有任何变化,则只将那些数据更新到本地(静态)数据库。

要执行上述步骤,您必须将上次更新日期 传递给服务器/从服务器传递。我的意思是无论何时进行网络调用,都需要从客户端传递上次更新日期,服务器将检查此日期后要更新的新数据。服务器将存储客户端日期作为更新日期并返回给客户端。

关于java - 旅游应用获取数据的好方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16234385/

相关文章:

java - 在android中的sqlite3中创建自定义函数

android - 如何在Unity项目中查找并修复android build失败 ':transformClassesWithMultidexlistForRelease'的源

java - Ant build.xml 配置与外部库和 Java 属性文件配合使用时出现问题

java - 在 Selenium 中定位脚本

java - 使用Spring RestTemplate时如何避免[]的双重编码?

Java 线程 : How to print alphabets and numbers using two threads one at a time

android - 自从使用 sdkmanager 更新 eclipse 后,optionsmenu 不工作

android sdk 版本 3.0 minSdkVersion

java - 如何使用图像和滚动创建警报对话框 [ANDROID]

java - settings.xml 中的 Maven 命令行参数