我是 Rxjava 的新手,正在探索以下描述的场景中的可能性并需要帮助。

第 1 步:滑动 View
第 2 步:进行 API 调用以获取数据

针对View的数量重复上述步骤。

问题 :



我需要在 API_CALL_2 请求时取消 API_CALL_1 请求。
谢谢。

最佳答案

类(class)成员:

Subscription mSubscription;

您的 API 调用:
if(subscription != null && !subscription.isUnsubscribed()){
    subscription.unsubscribe();
    subscription = null;
}
subscription = doApiCall("some_id")
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(new Action1<Object>() {
            @Override
            public void call(Object o) {

            }
        }, new Action1<Throwable>() {
            @Override
            public void call(Throwable throwable) {

            }
        });

因此,它的主要思想是,您必须取消订阅之前的电话:
if(subscription != null && !subscription.isUnsubscribed()){
    subscription.unsubscribe();
    subscription = null;
}

开始新通话之前

关于Android RxJava 取消旧请求,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40582512/

10-12 04:05