gpt4 book ai didi

android - 排队/保存改造请求并在互联网连接不佳/没有互联网连接时发送它们

转载 作者:行者123 更新时间:2023-12-04 13:36:14 28 4
gpt4 key购买 nike

我有我的 android 应用程序,它不是为离线工作而构建的,因此它依赖于网络连接/数据。

应用程序进行大量网络调用,使用新数据集更新 api。

我正在对其进行更改以使其脱机工作。

方法我想我将创建一个 Room 数据库,我将在其中保存改造请求,当有连接时,我将从数据库中提取它们并将其发送到 api。

听起来对吗?
有没有其他更好的方法,我可以在没有连接时保存请求,并且在有连接时将这些保存的请求发送到服务器。

我们也可以将请求保存在 Room 数据库中吗

我不打算与 BE(API) 进行数据库同步,而 BE(API) 处理请求。

你的建议很有值(value)

谢谢
R

最佳答案

我马上想说——我认为你问的不是好主意,我不建议这样做。但这是你的选择。我想到的是在 Room 中保存请求(也许很奇怪,但顺其自然):

  • 假设您有 N 个 api 端点。它们每个都有一些参数(从 0 到 M)。
  • 可以做个表请求 在您的房间中,其中包含 (1 + P) 列,其中 P - 端点参数的最大数量(也许应该有时间顺序的日期和是否也已经处理请求的标记)。所有列都有字符串类型。第一列 - 用于端点名称(键)。您将使用该 key 来定义您的改造端点之一。
  • 在离线模式下,您将请求保存在表 中请求 ' 行 - 端点名称并序列化为每个参数的 JSON 字符串。
  • 当网络开启时 - 你查询你的表,反序列化你的 api 参数,并在一些循环中重新创建你的 rest Api 请求,就像这样:
    // restApi - your Retrofit interface
    // apiName - endpoint String key from db
    // parameter1 - endpoint's parameter1, restored from db saved JSON string
    // ....
    // parameterM - endpoint's parameterM, restored from db saved JSON string
    when (apiName) {
    "endpoint1" -> restApi.someYourEndPoint1(parameter1)
    "endpoint2" -> restApi.someYourEndPoint2(parameter1,parameter2)
    ..........
    }
  • 关于android - 排队/保存改造请求并在互联网连接不佳/没有互联网连接时发送它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61825665/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com