2012-04-04 95 views
2

我正在构建像Android应用程序一样的POS,即使数据连接暂时丢失,也需要工作。离线同步Android应用程序的通用体系结构

如果数据连接可用,则该想法是立即向服务器报告所有事务。如果没有,则将其存储在本地SQLite中,并在连接可用时进行同步。

第一个计划是将单个事务保存在与服务器上维护的通用数据库结构相同的位置,但由于服务器上有很多不同类型的事务和关系,这将有效地复制整个数据库结构电话本身的服务器。

此替代方法是仅保存用于通知服务器更改的最终HTTP请求。这种方法的优点是它只需要一个表,只需存储URL,请求内容,方法等。但是可能有一些调用需要在响应上执行代码,这将会作为匿名内部类来实现。这种方法的唯一问题似乎是序列化这些匿名内部类,以便它们可以从数据库加载并在(可能的)手机重新启动后执行。

什么是最好的实施方式?选项A还是选项B?如果选择B,是否真的有可能序列化和反序列化匿名内部类(它们在这里被有效地用作闭包)?

回答

1

对于选项A,您可能希望考虑CouchDB来处理设备/服务器复制。

Couchdb on Android