RxJava2'de CompositeDisposable veya Disposable kullanımı ile ilgili örnekler. RxJava 1'de, CompositeSubscription vardı, ancak RxJava2'de mevcut değil, rxJava2'de CompositeDisposable bir şey var. RxJava2 içinde CompositeDisposable veya Tek kullanımlık nasıl kullanılır.RxJava 2'nin CompositeDisposable'ı nasıl kullanılır?
41
A
cevap
74
private final CompositeDisposable disposables = new CompositeDisposable();
// adding an Observable to the disposable
disposables.add(sampleObservable()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(new DisposableObserver<String>() {
@Override
public void onComplete() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(String value) {
}
}));
static Observable<String> sampleObservable() {
return Observable.defer(new Callable<ObservableSource<? extends String>>() {
@Override
public ObservableSource<? extends String> call() throws Exception {
// Do some long running operation
SystemClock.sleep(2000);
return Observable.just("one", "two", "three", "four", "five");
}
});
}
// Using clear will clear all, but can accept new disposable
disposables.clear();
// Using dispose will clear all and set isDisposed = true, so it will not accept any new disposable
disposables.dispose();
RxJava2 kullanımını göstermek için örnek bir proje oluşturdum. Onlar abonelik kaldırıldı Neden Burada sample project - RxJava2-Android-Samples
0
// clearing or unsubscibing
disposables.clear();
burası kullanımını dispose()
+9
Bu, iyi bir öneri değildir, çünkü imha edildikten sonra gözlemlenebilir birisine yeniden gönderemezsiniz(). – box
bulabilirim? –
@anandgaurav: Onlar rxJava2'yi sıfırdan yazdılar, böylece daha iyi apiler yarattılar. –
de degerli kullanicidan degerli kullanilabilir –