背景:
我试图通过从安卓系统中的AsyncTask和HttpUrlConnection进行进度回调,将我的旧下载代码迁移到使用改造。但是,我注意到默认情况下,retrofit/okhttp不提供这种回调。
我已经做了大量的搜索,并找到了一些方法,包括官方的okhttp 解决方案,这是由拦截器和自定义ResponseBody完成的。然而,它们都没有真正满足我的需要。
我想要的:
这段代码的问题是回调实际上是附加到拦截器上的,这使得它附加到了okhttp客户端,而我需要的是为每个请求应用不同的回调对象。(不同的android元素更改等等)。
我尝试过的:
据我所知,单个请求被标记为单个更新的调用接口实例,因此如果我想实现每个请求回调,则必须将其附加到调用实例或RequestBody实例。
不幸的是,我没有找到在okhttp拦截器中获取更新调用实例的任何方法。我也不能将自定义回调对象附加到它。
至于自定义RequestBody方法,它似乎是可行的。但是如果是GET请求,它就不再可用了,因为不能使用改造来设置RequestBody。
有什么优雅的方法来实现这一点吗?所谓“优雅”,我的意思是我不喜欢自己以任何形式维护请求->回调映射,这甚至可能导致内存泄漏,即使不是非常小心。
https://stackoverflow.com/questions/60548708
复制相似问题