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()
?