Bir önceki yazımda observable nedir nasıl kullanılırdan bahsetmiştim . Şimdi ise Observable yerine kullanılabilecek diğer dinleyici türlerine bir göz atalım .
Observable -> Birden fazla kez dinleyici tetiklenecek ise kullanılır . Bu yüzden onNext , onComplete adında iki methodu vardır . Her yayınlamada onNext tetiklenirken tüm akış bittiğinde ise onComplete tetiklenir .
Observable.create(new ObservableOnSubscribe
Single -> Dinleyici sadece bir kez tetiklecek ise kullanılır . Bu yüzden onSuccess methodu mevcuttur .
Single.create(new SingleOnSubscribe() {
@Override
public void subscribe(SingleEmitter e) throws Exception {
e.onSuccess("Hello");
}
}).subscribe(new SingleObserver() {
@Override
public void onSubscribe(Disposable d) {}
@Override
public void onSuccess(Object o) {
Log.d(Tag, o);
}
@Override
public void onError(Throwable e) {}
});
Completable - > Single ile aynı gibi görünsede burada dinleyici tetiklenirken observable dan herhangi bir değer beklenmez . Arkaplanda bir işlem gerçekleştirilir ama sadece bitip bitmediğiyle ilgilenilir .
Completable.create(new CompletableOnSubscribe() {
@Override
public void subscribe(CompletableEmitter e) throws Exception {
e.onComplete();
}
}).subscribe(new CompletableObserver() {
@Override
public void onSubscribe(Disposable d) {}
@Override
public void onComplete() {
Log.d(Tag, "done");
}
@Override
public void onError(Throwable e) {}
});
Maybe -> Single ile Completable birleşimi gibidir . Hem onSuccess hem de onComplete methodları mevcut . Yani hiçbir sonuç dönmeyedebilir , tek bir sonuç dönedebilir .
Maybe.create(new MaybeOnSubscribe() {
@Override
public void subscribe(MaybeEmitter e) throws Exception {
e.onSuccess("Hello");
// e.onComplete();
}
}).subscribe(new MaybeObserver() {
@Override
public void onSubscribe(Disposable d) {}
@Override
public void onSuccess(String s) {
Log.d(Tag, s);
}
@Override
public void onError(Throwable e) {}
@Override
public void onComplete() {
Log.d(Tag, "done");
}
});
0 yorum:
Yorum Gönder