2012-04-16 156 views
2

我正在開發一個用於構建和共享自行車道數據庫的android應用程序。Android應用程序:在用戶之間共享數據

用戶將能夠以自己的位置和路徑添加到他們的本地數據庫的副本,或編輯現有的描述,細節等
我想一些機構,其中應用程序的所有用戶都可以與共享他們的數據另一個。例如,通過一箇中央的基於Web的數據庫或其他東西。 僅僅上傳整個數據庫並不奏效,因爲我預計會有幾個用戶想要同時進行編輯的時候,可能是同一個對象。

是否有定義的「最佳實踐」來完成這種數據共享?

+0

GPS跟蹤建立路徑和位置,然後上傳到互聯網。答案在問題中。 – gobernador 2012-04-17 00:09:19

+1

對不起,但你錯過了這一點。我已經有了路徑和位置數據,我想知道如何將多個用戶的數據合併在一起,並將結果分享給他們。 – Brent 2012-04-18 14:30:32

回答

0

我認爲,算法應該是這樣的:

注意:您需要確定2點位置是否相同或不是一個好辦法。據推測,一個地點可能有不同的名稱或拼寫,以及稍微不同的GPS座標。此外,多個路徑可能始於相同的GPS座標。

Iterate through the remote records, one by one 
     If the location doesn't exist locally 
     create it. 
     else if the record is identical 
      ignore it 
      else 
      if only one record changed 
       copy it to the opposite database 
      else 
       merge the data from the 2 records together somehow 

最後,您需要將任何本地創建的記錄上載到遠程數據庫。

2

您應該創建一個服務器應用程序,它將處理您所有客戶端的數據交換。您的服務器應用程序必須鏈接到您的數據庫。您的客戶端應用程序(ak:用戶)也將只與將刷新其他客戶端應用程序的服務器應用程序通信。看看Java套接字,並記住把它們放在一個AsyncTask類(類似於線程,但只用於Android)。

0

傑克遜看看:http://wiki.fasterxml.com/JacksonDataBinding

如果你有你的應用程序中一個標準的Java模型,傑克遜會幫助你將其轉換成JSON,您可以輕鬆地發送到一箇中央服務器。

當您從中央服務器拉下新路由時,您只需使用Jackson將JSON反序列化回Java模型。

+0

JSON是關於數據傳輸的,而不是關於同步的。我的問題與如何避免/解決數據混淆有關。 – Brent 2012-04-18 14:27:47

相關問題