【发布时间】:2016-05-18 18:07:42
【问题描述】:
我使用 com.squareup.retrofit:retrofit:2.0.0-beta2 并遇到一些问题。 我想添加通过按下按钮关闭某些下载的可能性。于是我在 OkHTTPClient 中找到了 cancel(Object tag) 方法。 我试图找到可以放置此标记值的位置,但没有找到任何东西。也将 null 作为参数传递根本不起作用。 有人可以帮我告诉我可以在哪里放置标签或建议另一种方法吗?
【问题讨论】:
我使用 com.squareup.retrofit:retrofit:2.0.0-beta2 并遇到一些问题。 我想添加通过按下按钮关闭某些下载的可能性。于是我在 OkHTTPClient 中找到了 cancel(Object tag) 方法。 我试图找到可以放置此标记值的位置,但没有找到任何东西。也将 null 作为参数传递根本不起作用。 有人可以帮我告诉我可以在哪里放置标签或建议另一种方法吗?
【问题讨论】:
Retrofit2 也有一个cancel() 方法。你可以用那个。这是一个例子:
Call<ResponseBody> call =
downloadService.downloadFileWithDynamicUrlSync(fileUrl);
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
Log.d(TAG, "request success");
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
Log.e(TAG, "request failed");
}
});
// something happened, for example: user clicked cancel button
call.cancel();
请注意,如果您取消请求,Retrofit 会将其归类为失败并致电 onFailure()。
如果您有兴趣,请进一步阅读:https://futurestud.io/blog/retrofit-2-cancel-requests
【讨论】: