Android - 离线模式 - 同步数据

标签 android api synchronization offline-mode

我正在开发驱动程序应用程序 android 应用程序。司机应用程序的主要任务是为特定客户提供订单。

司机将收到大量订单,他可以更改每个订单的状态,例如(在途、搁置、交付、取消、拒绝)。一旦互联网连接断开,驱动程序将无法执行任何操作。

我的目标是如何让应用程序在离线模式下运行,一旦互联网连接断开,司机仍然可以对每个订单采取行动,他可以在本地将每个订单的状态从新更改为正在运输中以交付等等。一旦互联网连接恢复,我就可以将数据同步/推送到服务器。

所以我的问题是: - 我怎样才能做到这一点? - 我应该保存什么来同步 API 请求或订单状态?

谢谢,

最佳答案

您可以在您的应用中执行以下步骤:

  1. 创建一个本地数据库,其架构包含有关停靠点和项目的信息。
  2. 一开始,当司机开始他的旅程时,他必须有互联网。抓取所有配送信息,保存到本地数据库,以供使用。
  3. 从本地数据库向司机显示此列表。
  4. 您可以有2 个标记,分别命名为delivery_statussynced。最初,delivery_status 可以是in_transitsynced 标志必须是 false
  5. 创建一个后台服务,以特定的时间间隔持续检查互联网连接。如果没有互联网,服务将停止并且什么也不会发生。但是,如果有互联网,从本地数据库中获取所有未同步的 **(synced = false) ** 数据,并将数据发送到服务器。服务器成功响应后,将此同步标志标记为 true。每隔一定时间重复此步骤以检查未同步的数据,并继续将其发送到网络服务器,直到所有同步标志都为真。

这样,您可以让司机有时在没有网络的情况下送货,一旦网络可用,您的后台服务就会将状态上传到服务器。

关于Android - 离线模式 - 同步数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50037522/

相关文章:

java - 如何动态追加新行到多行 TextView

java - Java 运行时环境 (JRE) 或 Java 开发工具包 (JDK) 必须可用才能运行 Eclipse

java - 双重检查锁定的乱序写入

ios - CloudKit 处理 ChangeTokenExpired 错误

android - 更改 CustomPaint 的颜色会更改所有先前的点

android - OpenGL es,在生成和渲染 MIP 贴图时控制 VM 使用

swift - 将来自 API 的解码数据用于算法

安卓 OpenGl : When to start calling API functions?

azure - 从模板 .net Core 应用程序访问 Graph Api

mysql - 基于变化同步的数据库策略