将本地db(Sqlite)与服务器db android同步

时间:2017-12-18 13:20:54

标签: android synchronization android-syncadapter

我想创建一个POS应用程序,但出于某种原因,应用程序应该在没有互联网连接时工作(后来在连接到互联网时进行同步)。我想到的唯一方法是在本地数据库与服务器之间进行同步,但我不知道如何或最好的方法来做到这一点。我有几个问题:

  1. 是否可以使用FCM云消息来实现此目的?我的意思是客户端A告诉FCM数据已更改,然后FCM告诉多个客户端(电话)在后台执行同步数据库而无需用户(电话所有者)确认(自动)。

  2. 或唯一的方法是使用此方法https://github.com/codepath/android_guides/wiki/Server-Synchronization-(SyncAdapter)?如果是这样,我们多久可以将db本地与服务器同步?同步每3分钟会没事?

1 个答案:

答案 0 :(得分:1)

是的,请使用FCM实时数据库。 FCM在应用程序内部以及云上为您管理数据。因此,如果您将一些数据写入JSON树但没有互联网连接,则一旦连接可用,数据将被推送到云中。 这些文件清楚地说明了这一点(阅读最后一节'写下离线数据':https://firebase.google.com/docs/database/android/read-and-write

此外,客户端离线时添加到数据库的任何数据都将在客户端上线后发送 - 因为实时数据库也会保存数据。

每3分钟使用一次服务器同步是不可行的 - 并且您的应用程序更有可能在某个时刻被系统杀死。使用FCM和云功能以及JobSchedulers可以获得最佳效果。