【问题标题】:Cancel calls in retrofit:2.0.0-beta2 by tag通过标签取消改造:2.0.0-beta2 中的调用
【发布时间】:2016-05-18 18:07:42
【问题描述】:

我使用 com.squareup.retrofit:retrofit:2.0.0-beta2 并遇到一些问题。 我想添加通过按下按钮关闭某些下载的可能性。于是我在 OkHTTPClient 中找到了 cancel(Object tag) 方法。 我试图找到可以放置此标记值的位置,但没有找到任何东西。也将 null 作为参数传递根本不起作用。 有人可以帮我告诉我可以在哪里放置标签或建议另一种方法吗?

【问题讨论】:

    标签: android retrofit okhttp


    【解决方案1】:

    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

    【讨论】:

    • 好的,但是是否可以为我的请求设置一个标签(例如字符串),并通过使用这个标签而不是直接“调用”对象来取消它?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-04
    • 2017-10-02
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多