有两个事件——event1
并且event2
可以调用getA()
,这两个事件可以同时发生并触发getA
。在完成之前,我不想getA
多次调用。我isDisposed()
用来检查它是否仍然处于活动状态并dispose()
显式调用doFinally
并将 fetchADisposable 设置为 null 。有一个更好的方法吗 ?
一次性fetchADisposable;
public void getA() {
fetchA() //returns Observable
.doFinally(new Action() {
fetchADisposable.dispose();
fetchADisposable = null;
}).subscribe() {
@Override
public void onSubscribe (Disposable d){
fetchADisposable = d;
}
@Override
public void onNext () {
}
@Override
public void onError (Throwable e){
}
@Override
public void onComplete () {
}
}
}
public void event1() {
if (fetchADisposable == null || fetchADisposable.isDisposed()) {
getA();
}
}
public void event2() {
if (fetchADisposable == null || fetchADisposable.isDisposed()) {
getA();
}
}