将设备数据与Web服务器同步

我的应用程序中有数据,必须根据网络可用性在服务器上更新。 我使用sqlite将这些数据存储在android上的本地数据库中。 目前的想法是:

  1. 应将数据插入本地sqlite数据库
  2. 插入数据后,服务应该等待它检查网络可用性并将其发送到服务器并等待成功响应。
  3. 如果从服务器收到响应true,它应该更新该sqlite行的同步状态并移动到下一行以发送数据。

我想找出将此数据排队以将其发送到服务器的最佳方法,此外,当网络不可用时,此队列应停止向服务器发送数据。 由于java中有许多队列可用,因此最好保存这些数据。 由于数据可以增长到任何无限大小。 这就像生产者 – 消费者问题,但解决它的最有效方法是什么。

提前致谢。

当存储在本地数据库中时,为什么要将这些数据存储在队列中? 我的意思是如果您的应用程序关闭然后队列中的数据丢失会发生什么。 只需编写一个服务,检查本地数据库是否有新条目。 如果有新条目,请尝试将它们推送到Web服务器。