2014-09-24 109 views
-1

我的Android應用程序將在離線模式下提供的能力工作的工作同步功能。我正在使用Content Providers將數據存儲在SQLite數據庫中。 NOw我想爲我的應用程序實現同步功能。一旦客戶端再次聯機,這將啓用同步數據。 任何人都可以請給我提供一個很好的例子嗎?實現對於SQL Server 2012數據庫

回答

0

我已經在過去做到了這一點。我最終設計了一個xml數據包格式,用於與服務器上的Web服務進行通信。該數據包包含標題信息,其中包含用戶標識,設備標識,日期/時間,GPS線和用於定義數據包內包含什麼類型數據的模式。

從設備發送到服務器的任何數據包都寫出到設備上的文件夾中,然後後臺進程會在連接可用時發送它們,並且只有在從服務器接收到成功的響應後才從設備上的文件夾。

對於從服務器獲取更新的信息,我創建了一個同步發生次數爲每個用戶帳戶,並隨時東西,可能會影響什麼數據的用戶/設備應該有我增加的數量在服務器上完成。手機隨後會輪詢服務器(無論您想要什麼時間間隔),只需檢查此號碼是否與上次同步的時間相同。如果數量是相同的,那麼你完成(以最小的數據傳輸),如果數量是不同的,則設備的任何請求/所需的所有新數據(你如何做到這一點,將取決於你想要的數據類型)。只有在成功加載更新的數據後,我才能更新設備上的同步代號。這樣,如果連接斷開,它將在下次聯機時重新請求數據。

我還沒有使用直接推不過也有關於如何設置類似的東西在網絡上相當多的例子。 SignalR是我一直在研究的一種可能的方式。

+0

感謝您的回答。但是爲了同步,在服務器端需要做什麼?例如,我在服務器端有SQL服務器數據庫...我應該實現REST API嗎?如果是這樣,那麼我們如何只同步更新的數據?有沒有我們可以使用的可用工具? – sandeep 2014-09-24 14:01:00

+0

我在asp.net中構建了一個web服務(使用REST方法),然後這個web服務位於web(設備)和SQL db之間。在這裏,你需要開發一些處理數據同步的邏輯。 – David 2014-09-24 15:24:56

相關問題