0
RxJava
を使用してAndroid
アプリケーションで特定の形式のQRコードをテストしたいと考えています。私はいくつかの条件についてQRコードをチェックする必要があり、それが本当であれば、私はさらにチェックを止め、それらに反応する必要があります。 UIにQRコードが無効であるというエラーメッセージを表示します。RxJavaフィルタを適用してイベントに反応しますか?
私はObservable.error
を使用することをお勧めしません。極端なイベントにのみ使用する必要があるためですが、フィルタリングしているイベントは極端ではありませんが、予期されることがあります。スキャンされたQRコードがアプリケーション用に作成されていないか、QRコードに含まれているデータが無効です。そうでなければ私はこのような何かについて考えているだろう:
Observable.just(barcode)
.doOnNext(new Action1<Barcode>() {
@Override
public void call(Barcode barcode) {
if(barcode.rawValue == null) {
throw new RuntimeException("empty");
}
if(barcode.rawValue == null) {
throw new RuntimeException("empty");
}
}
})
.onErrorResumeNext(new Func1<Throwable, Observable<? extends Barcode>>() {
@Override
public Observable<? extends Barcode> call(Throwable throwable) {
//do something here
}
})
.subscribe(new Subscriber<Barcode>() {
//update UI to show result
});
onError()
にストリームを送信せずにデータのための私のバーコードをテストすることをお勧めでしょうか?