【问题标题】:Android: Linking and syncing Room database to online server databaseAndroid:将房间数据库链接和同步到在线服务器数据库
【发布时间】:2019-07-30 14:33:46
【问题描述】:

我正在开发一个应用程序,它使用数据库将数据存储在服务器上,但我试图在本地保存一些数据,如果没有建立互联网连接,请将新数据本地保存到设备并在重新建立连接时将任何更改同步到服务器。最好和最有效的方法是什么?

我一直在研究 Androids Room 持久性库,这似乎是合乎逻辑的选择,但我不确定它是如何与本地存储数据库同步更改的。我查看了多个线程和论坛寻求帮助,但到目前为止还没有运气。请帮忙。

【问题讨论】:

  • 嗨。我有同样的要求。你能做到这一点吗?进入文档 android 讲一下 WorkManager、Sync Adapter、Content Provider 等,但我不知道哪些组件是做这些的好组件。

标签: java android sql android-studio android-room


【解决方案1】:

一种方法是构建自己的同步适配器:https://developer.android.com/training/sync-adapters

您将需要处理客户端和服务器之间的大部分同步逻辑,但这允许您在服务器中使用任何数据库技术。来自文档:

同步适配器不会自动执行任何数据传输任务。如果您想从服务器下载数据并将其存储在内容提供程序中,您必须提供请求数据、下载数据并将其插入提供程序的代码。同样,如果您想向服务器发送数据,您必须从文件、数据库或提供程序中读取数据,并发送必要的上传请求。您还必须处理数据传输过程中发生的网络错误。

同步适配器不会自动处理服务器上的数据和设备上的数据之间的冲突。此外,它不会自动检测服务器上的数据是否比设备上的数据新,反之亦然。相反,您必须提供自己的算法来处理这种情况。

【讨论】:

    【解决方案2】:

    使用 firestore 并启用离线数据持久性。 https://firebase.google.com/docs/firestore/manage-data/enable-offline

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-26
      • 1970-01-01
      • 1970-01-01
      • 2013-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多