【问题标题】:How to queue API calls when you're offline while using Retrofit如何在使用 Retrofit 时离线时对 API 调用进行排队
【发布时间】:2021-03-17 04:53:19
【问题描述】:

我正在结合使用 Retrofit 和 rx-java 并且有以下问题:

有没有办法在设备离线时对服务器的 API 调用进行排队,以便在设备再次在线时触发它们。

【问题讨论】:

    标签: android retrofit rx-java


    【解决方案1】:

    编辑:2021 年 3 月您现在应该改用 Work Manager


    您首先需要将队列添加到您的项目中,并通过该队列管道改造作业。因此,要么创建自己的队列,要么检查像 android-priority-jobqueue 这样的库是否符合您的要求(该库还可以处理排队作业的持久性,因此应用程序终止/重新启动不那么痛苦)

    【讨论】:

    • 谢谢!有没有办法在应用重新启动时将队列保存到持久性存储中?
    • 当然。实际上 android-priority-jobqueue 是开箱即用的(实际上它首先存储它,然后处理)。使用自定义实现,您必须自己执行此操作
    • 哇,这听起来太棒了!我会潜入其中!谢谢!
    • 我已经在我的代码中实现了这个库,我不得不说我真的很惊讶!这是迄今为止我能想象的最好的方法。非常感谢您为我指明了正确的方向!
    【解决方案2】:

    我认为 Marcin Orlowski 的回答很好。但是如果你想用 rxjava,你可以使用.retry() 来检查你是否在线,在里面。

    rxjava: Can I use retry() but with delay?

    【讨论】:

    • 感谢您的回答。当应用程序在一天左右重新启动时,调用也应该被缓存和发送。仅当应用程序在内存中时才具有重试功能吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    • 2015-11-29
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多