我从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;
}
但是它为null,所以我尝试使用它,代码:
Disposable disposable = Observable.just(imageClient.OCR(**,**,**))
.observeOn(AndroidSchedulers.MainThread())
.subscribeOn(schedulers.newThread())
.map(new Function(){
............此处省略
})
.flatMap(new Function<Rsult,ItemsBean>(){
............此处省略
})
.subscribe(new Consumer(){
............此处省略
})
并在mainThread异常中抛出网络,谢谢。我想知道使用它的正确方法是什么。
答案 0 :(得分:1)
使用Observable.just
将在传递参数时执行该参数。并且由于imageClient.OCR(**,**,**)
拨打了网络电话。您正在得到例外。
为防止这种情况,您必须包围执行程序,然后订阅:
一种实现方法是:
Observable.fromCallable { imageClient.OCR(**,**,**) }