2013-04-26 33 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

也許有可能存儲像「一個興趣點 - 一個文件」的興趣點?在這種情況下,您可以輕鬆地從服務器上輕鬆讀取新點數

相關問題