2012-04-04 94 views
2

我正在構建像Android應用程序一樣的POS,即使數據連接暫時丟失,也需要工作。離線同步Android應用程序的通用體系結構

如果數據連接可用,則該想法是立即向服務器報告所有事務。如果沒有,則將其存儲在本地SQLite中,並在連接可用時進行同步。

第一個計劃是將單個事務保存在與服務器上維護的通用數據庫結構相同的位置,但由於服務器上有很多不同類型的事務和關係,這將有效地複製整個數據庫結構電話本身的服務器。

此替代方法是僅保存用於通知服務器更改的最終HTTP請求。這種方法的優點是它只需要一個表,只需存儲URL,請求內容,方法等。但是可能有一些調用需要在響應上執行代碼,這將會作爲匿名內部類來實現。這種方法的唯一問題似乎是序列化這些匿名內部類,以便它們可以從數據庫加載並在(可能的)手機重新啓動後執行。

什麼是最好的實施方式?選項A還是選項B?如果選擇B,是否真的有可能序列化和反序列化匿名內部類(它們在這裏被有效地用作閉包)?

回答

1

對於選項A,您可能希望考慮CouchDB來處理設備/服務器複製。

Couchdb on Android