当您使用Retrofit时,离线时如何排队API调用

10
我正在结合rx-java使用Retrofit,并有以下问题:
是否有一种方法可以在设备离线时将API调用排队到服务器,以便它们可以在设备再次联机时触发。
2个回答

13

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


你需要首先将队列添加到你的项目中,并通过该队列传输Retrofit作业。因此,要么创建自己的队列,要么检查像android-priority-jobqueue这样的库是否符合你的要求(它还处理排队作业的持久性,因此应用程序的杀死/重启不会带来太多痛苦)


谢谢!有没有一种方法可以将队列保存到持久性存储中,以便在应用程序重新启动时使用? - Ben Groot
1
当然。实际上,android-priority-jobqueue可以直接做到这一点(事实上,它首先存储,然后处理)。如果使用自定义实现,则必须自己完成此操作。 - Marcin Orlowski
哇,这听起来太棒了!我会深入了解的!谢谢! - Ben Groot
3
我已经在我的代码中实现了这个库,我不得不说我感到非常惊讶!这绝对是我能够想象到的最好方法。非常感谢你指引我走向正确的方向! - Ben Groot

1

谢谢你的回答。这些调用也应该被缓存,并在一天左右的时间后重新启动应用程序时发送。重试功能只有在应用程序在内存中时才有效,对吗? - Ben Groot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接