我收到来自 OCR 的消息,并像这样通过rxjava
发布它。
Disposable disposable = Observable.just(OCR())
.observeOn(AndroidSchedulers.MainThread())
.subscribeOn(schedulers.newThread())
.flatMap(new Function<Rsult,ItemsBean>(){
............
})
.subscribe(new Consumer(){
............
})
OCR(( 本身从服务器获取消息,返回类型是一个实体,代码在这里
public static Result OCR(){
ImageClient imageClient = new ImageClient();
String result = imageClient.OCR(**,**,**);//network
Result resultEntity = gson.fromJson(result);
return resultEntity;
}
但它是空的,所以我尝试使用它来代替,代码:
Disposable disposable = Observable.just(imageClient.OCR(**,**,**))
.observeOn(AndroidSchedulers.MainThread())
.subscribeOn(schedulers.newThread())
.map(new Function(){
............此处省略
})
.flatMap(new Function<Rsult,ItemsBean>(){
............此处省略
})
.subscribe(new Consumer(){
............此处省略
})
并在主线程中抛出网络异常,不知道正确的使用方法是什么,谢谢。
使用Observable.just
将在参数传递时执行参数。 并且由于imageClient.OCR(**,**,**)
对网络进行调用。你得到的是例外。
为了防止这种情况,您必须封装执行,然后订阅:
实现此目的的一种方法是:
Observable.fromCallable { imageClient.OCR(**,**,**) }
另请参阅创建可观察量文档