Android:将Room数据库与在线服务器数据库链接和同步

9
我正在开发一个应用程序,使用数据库将数据存储在服务器上,但我试图将部分数据保存在本地,并在没有网络连接的情况下将新数据保存到设备本地,并在重新建立连接时将所有更改与服务器同步。有什么最好、最有效的方法可以实现这一点?
我一直在研究Android的Room持久性库,它似乎是逻辑上的选择,但我不确定它如何同步来自/到本地存储数据库的更改。我已经查看了多个线程和论坛以获取帮助,但至今没有成功。请帮忙。

嗨。我有同样的需求。你能实现吗?在文档中讨论WorkManager、Sync Adapter、Content Provider等Android相关组件,但我不知道哪些是最好的组件来完成这个任务。 - A. Cedano
2个回答

3
一种方法是构建自己的同步适配器:https://developer.android.com/training/sync-adapters 您需要处理客户端和服务器之间大部分同步逻辑,但这允许您在服务器上使用任何数据库技术。从文档中可以看到:
同步适配器不会自动执行任何数据传输任务。如果您想从服务器下载数据并将其存储在内容提供程序中,则必须提供请求数据、下载数据并将其插入提供程序的代码。同样,如果您想将数据发送到服务器,则必须从文件、数据库或提供程序中读取它,并发送必要的上传请求。您还必须处理在数据传输运行时发生的网络错误。
同步适配器不会自动处理服务器上的数据与设备上的数据之间的冲突。此外,它不会自动检测服务器上的数据是否比设备上的数据更新,反之亦然。相反,您必须为处理此情况提供自己的算法。

-4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接