保存/序列化OkHttp / Retrofit请求

时间:2016-10-19 04:35:44

标签: android retrofit2 okhttp okhttp3

我希望能够从崩溃/关闭应用程序或只是断开连接的设备中恢复。

目前,当我检测到网络已用于我的Android设备时,我将使用RetroFit2创建的调用保存在堆栈中(稍后处理)。如果用户要关闭应用程序或重新启动设备,我将失去在任何地方保存这些电话的可能性......

我的问题如下,如何保存RetroFit Call或OkHttp3请求? 它们都不是可序列化的,也不能将它们从我看到的代码中转换为字符串。

1 个答案:

答案 0 :(得分:4)

使用Yigit Boyar(谷歌机器人之一)的android priority jobqueue。它会对您的作业进行搜索,检测网络更改(并做出相应的响应)并在设备重新启动时保持不变(更不用说应用程序崩溃)。还有很多其他功能。看看吧。这不是您要求的,但它是一个更好的解决方案。这是魔术。

  

从v2开始,作业队列可以与JobScheduler或GCMNetworkManager集成。此集成允许作业队列根据其拥有的作业标准唤醒应用程序。您可以在相关的Wiki页面上看到deatails。 Scheduler API非常灵活,如果您的目标市场没有Google Play服务,您可以实施自定义版本。

尝试一下,你会很高兴你做到了,就像我一直在做的那样。它填补了我的代码中的巨大空白,我花了几周的时间与唾液,鸭子和信仰一起进行黑客攻击。