2014-09-24 72 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

相关问题