实现SQL Server 2012 DB的同步功能

时间:2014-09-24 13:43:24

标签: android sql-server sync

我正在开发Android应用程序,它将提供离线模式功能。我使用内容提供商在SQLite DB中存储数据。 我想为我的应用程序实现同步功能。一旦客户端再次联机,这将启用同步数据。 任何人都可以在此向我提供任何好的例子吗?

1 个答案:

答案 0 :(得分:0)

我过去做过这个。我最终得到的是设计一个xml数据包格式,以便在与服务器上的Web服务进行通信时使用。该数据包包含标题信息,包括用户ID,设备ID,日期/时间,GPS线和定义数据包中包含的数据类型的模式。

从设备发送到服务器的任何数据包都会写到设备上的文件夹中,后台进程会在连接可用后发送它们,并且只有从服务器收到成功的响应后才会从文件夹中删除在设备上。

为了从服务器获取更新信息,我为每个用户帐户创建了一个同步生成号,并且随时在服务器上完成某些操作,这可能会影响用户/设备应该拥有的数据。然后手机会轮询服务器(无论你想要的任何间隔),只需检查这个数字与上次同步时的数字。如果数字相同则完成(使用最少的数据传输)如果数字不同,则设备会请求所需的任何/所有新数据(如何执行此操作取决于您想要的数据类型)。只有在成功加载更新的数据后,才能更新设备上的同步生成号。这样,如果连接断开,它将在下次上线时重新请求数据。

我还没有使用直接推送,但是有很多关于如何在网络上设置类似内容的例子。 SignalR是我一直在研究的一种可能方式。