Saving/Serializing OkHttp/Retrofit 请求

Saving/Serializing OkHttp/Retrofit Requests

我希望能够从 crash/closing 应用或设备断开连接中恢复。

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

我的问题如下,如何保存 RetroFit Call 或 OkHttp3 Request? None 其中是可序列化的,或者我也无法将它们转换为我在代码中看到的字符串。

使用 Yigit Boyar(google android 人之一)的 android priority jobqueue。它会序列化你的工作,检测网络变化(并做出相应的反应),甚至在设备重启后仍然存在(更不用说应用程序崩溃了)。加上大量其他功能。看看吧。这不完全符合您的要求,但它是一个更好的解决方案。很神奇。

Starting with v2, Job Queue can be integrated with JobScheduler or GCMNetworkManager. This integration allows Job Queue to wake up the aplication based on the criterias of the Jobs it has. You can see the deatails on the related wiki page. The Scheduler API is flexible such that you can implement a custom version of it if your target market does not have Google Play Services.

试一试,您会很高兴的,就像我一样。它填补了我的代码中的巨大空白,我花了数周时间与 spit、ducktape 和 faith 一起破解。