Java 如何使改造接受每个请求的下载进度回调?

Java 如何使改造接受每个请求的下载进度回调?,java,android,retrofit2,okhttp,Java,Android,Retrofit2,Okhttp,背景: 我正试图用一个进度回调将我的旧下载代码从Android中的AsyncTask和HttpUrlConnection迁移到使用改型。但是,我注意到,在默认情况下,Reformation/okhttp不提供这种回调。 我已经做了很多搜索,并找到了一些方法,包括okhttp的官方方法,它是由拦截器和一个自定义响应库完成的。但是,它们都不能满足我的需要。 我想要什么: 这段代码的问题是回调实际上连接到了拦截器,这使得它连接到了okhttp客户端,而我需要的是为每个请求应用不同的回调对象(不同的an

背景:
我正试图用一个进度回调将我的旧下载代码从Android中的AsyncTask和HttpUrlConnection迁移到使用改型。但是,我注意到,在默认情况下,Reformation/okhttp不提供这种回调。
我已经做了很多搜索,并找到了一些方法,包括okhttp的官方方法,它是由拦截器和一个自定义响应库完成的。但是,它们都不能满足我的需要。
我想要什么:
这段代码的问题是回调实际上连接到了拦截器,这使得它连接到了okhttp客户端,而我需要的是为每个请求应用不同的回调对象(不同的android ui元素更改等)。
我所尝试的:
据我所知,单个请求由单个改装调用接口实例标记,因此如果我想实现每个请求的回调,它必须附加到调用实例或RequestBody实例。
不幸的是,我没有找到任何方法在okhttp拦截器中获取改装调用实例。我也不能将自定义回调对象附加到它。
至于定制RequestBody方法,它似乎是可行的。但如果要获取请求,它将不再可用,因为无法使用改装设置RequestBody。

有什么优雅的方法可以做到这一点吗?所谓“优雅”,我的意思是我不希望自己以任何形式维护一个请求->回调映射,如果不十分小心的话,这甚至可能导致内存泄漏。

您可能会找到带有
@Tag
和/或
调用的东西。允许您在改装请求中定义一个参数,该参数将在拦截器中可用。类似,但不需要额外的参数。

您可能可以找到带有
@Tag
和/或
调用的内容。允许您在改装请求中定义一个参数,该参数将在拦截器中可用。类似,但不需要额外的参数。

@Tag
正是我需要的。谢谢@JesseShi你能举例说明你是如何使用它来实现每个请求的下载进度的吗?
@Tag
正是我所需要的。谢谢@JesseShi你能举例说明你是如何使用它来实现每个请求的下载进度的吗?