我的项目是Retrofit库和RxAndroid。
例如,我从我的api中调用了一些方法
public void loadSomething() {
getApi().getSomething()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<Something>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Something s) {
}
});
}
我应该如何跟踪此观察点的进度,例如阻止用户第二次启动它?
应该在开始设置inProgress = true;
之前添加我的自定义标志,并在所有回调方法中设置inProgress = false;
?
我可以使用RxAndroid功能吗?或者它是否保证对api的一次调用不会并行启动几次?
答案 0 :(得分:1)
您可以使用Do operator。
您可以设置inPogress = true
中的doOnSubscribe()
和inProgress = false
中的doOnComplete()
。
同时致电subscribe
会返回Subscription。您可以使用它来检查呼叫是否已使用isUnsubscribed()
完成。