我正在开发驱动程序应用程序 android 应用程序。司机应用程序的主要任务是为特定客户提供订单。
司机将收到大量订单,他可以更改每个订单的状态,例如(在途、搁置、交付、取消、拒绝)。一旦互联网连接断开,驱动程序将无法执行任何操作。
我的目标是如何让应用程序在离线模式下运行,一旦互联网连接断开,司机仍然可以对每个订单采取行动,他可以在本地将每个订单的状态从新更改为正在运输中以交付等等。一旦互联网连接恢复,我就可以将数据同步/推送到服务器。
所以我的问题是: - 我怎样才能做到这一点? - 我应该保存什么来同步 API 请求或订单状态?
谢谢,
最佳答案
您可以在您的应用中执行以下步骤:
- 创建一个本地数据库,其架构包含有关停靠点和项目的信息。
- 一开始,当司机开始他的旅程时,他必须有互联网。抓取所有配送信息,保存到本地数据库,以供使用。
- 从本地数据库向司机显示此列表。
- 您可以有2 个标记,分别命名为delivery_status 和synced。最初,delivery_status 可以是in_transit,synced 标志必须是 false。
- 创建一个后台服务,以特定的时间间隔持续检查互联网连接。如果没有互联网,服务将停止并且什么也不会发生。但是,如果有互联网,从本地数据库中获取所有未同步的 **(synced = false) ** 数据,并将数据发送到服务器。服务器成功响应后,将此同步标志标记为 true。每隔一定时间重复此步骤以检查未同步的数据,并继续将其发送到网络服务器,直到所有同步标志都为真。
这样,您可以让司机有时在没有网络的情况下送货,一旦网络可用,您的后台服务就会将状态上传到服务器。
关于Android - 离线模式 - 同步数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50037522/