2013-04-26 48 views
2

我遇到了一个我正在使用的Android应用程序的小问题。 我有一个XML文件中声明的兴趣点列表。该POI的是这样的:什么是获取旅行应用程序数据的好方法

<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?

我还没有找到最佳的溶剂,并决定要求一些意见。

感谢,弗拉德

+0

您可以在本地存储它们并每次更新一次 – user902383 2013-04-26 10:38:09

+0

我试图避免在本地存储,但我想以某种方式获取新项目,但为了在XML中搜索它们,我需要读取整个XML文件,这样流量仍然很重要。 – 2013-04-26 10:40:42

+0

你只能在距离用户一定距离处获得POIs – user902383 2013-04-26 10:57:36

回答

1

只有2种可能的方式:

  1. 要么给来自网络的所有POI或
  2. 加载数据的静态数据库需要的时候。

现在你可以做一件事,保持静态数据库与应用程序。如果在服务器数据库中进行了任何更改,则在应用程序启动后进行Web调用并检查更新的数据。如果服务器数据库上有任何更改,则仅将这些数据更新到本地(静态)数据库。

为了实施上述步骤,您必须通过上次更新日期到/从服务器。我的意思是每当你打网络电话时,你需要通过客户端的最后更新日期,服务器将检查在这个日期后更新的新数据。服务器将客户端日期存储为更新日期并返回给客户端。

+0

我推荐使用Android为你提供的SQLite数据库@VladN – Fildor 2013-04-26 11:34:06

+0

但是如果我使用SQLite,有没有办法将我的本地数据库中的数据同步到一个(例如)在线MySql数据库? – 2013-04-26 11:40:27

+0

@VladN我的意思是静态/本地数据库是SQLite数据库本身;) – 2013-04-26 12:24:46

0

也许有可能存储像“一个兴趣点 - 一个文件”的兴趣点?在这种情况下,您可以轻松地从服务器上轻松读取新点数

相关问题