正在同步来自服务器和 android 设备的数据

Synchronizing data from server and android device

我实现了一个网络平台和一个 android 应用程序,用户可以在其中拥有个人资料,他们可以保存一些数据、图像等,并且系统必须保持同步。到目前为止,当用户在网络平台上添加数据时,我只是使用 GCM 通知 android 设备,当用户在 android 设备上添加数据时,我简单地使用 HTTP Requests 通知 android 设备。效果很好。

现在要求变了。 android 应用程序现在还应提供离线模式。用户应该能够在离线时更改 android 设备上的数据。稍后设备再次上线时,应同步数据。所以现在我不能再使用 GCM 和简单的 HTTP Requests,因为当设备处于离线状态时,用户可以更改设备和网络平台上的数据。所以我需要一个解决方案来同步数据。

我的第一个建议是使用能够自动同步的数据库,例如 Pouch DB。如果 android 没有这样的数据库,我需要一些非常复杂的合并机制。对于像个人资料信息这样的静态数据,这是没有问题的。一个简单的时间戳就可以解决问题。但是对于像值列表这样的动态数据,它更复杂。

有人对这种功能特别是数据库自动同步有经验吗?关于如何操作有什么建议吗?

您可以为此使用 SQLlite。
检查应用程序现在是否已连接到互联网。如果为真,则检查用户是否已离线更改数据(您可以使用 SharedPreferences,您可以在其中存储布尔标志)。
如果 flag 为 true,则访问 SQllite 中更改的数据并 post 到服务器。
您可以使用服务在后台检查设备是否离线。

顺便说一句,您的数据库有多复杂?
抱歉,我暂时无法评论你的问题。