Android rxjava中的空指针
我从OCR收到消息,然后像这样通过Android rxjava中的空指针,android,rx-java2,Android,Rx Java2,我从OCR收到消息,然后像这样通过rxjava发布 Disposable=Observable.just(OCR()) .observeOn(AndroidSchedulers.MainThread()) .subscribeOn(schedulers.newThread()) .flatMap(新函数(){ ............ }) .订阅(新消费者){ ............ }) OCR()本身从服务器获取消息,返回类型是一个实体,代码在这里 public static Resu
rxjava
发布
Disposable=Observable.just(OCR())
.observeOn(AndroidSchedulers.MainThread())
.subscribeOn(schedulers.newThread())
.flatMap(新函数(){
............
})
.订阅(新消费者){
............
})
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(){
............此处省略
})
Disposable-Disposable=Observable.just(imageClient.OCR(**,**,**))
.observeOn(AndroidSchedulers.MainThread())
.subscribeOn(schedulers.newThread())
.map(新函数(){
............此处省略
})
.flatMap(新函数(){
............此处省略
})
.订阅(新消费者){
............此处省略
})
并在主线程异常中抛出网络,我想知道使用它的正确方法是什么,谢谢。使用
可观察。只需在传递参数时执行它。由于imageClient.OCR(*,***,***,**)
给网络打电话。你得到了一个例外
为了防止这种情况,您必须封装执行,然后订阅:
实现这一目标的方法是:
Observable.fromCallable { imageClient.OCR(**,**,**) }
另请参见,如果我没有弄错,OCR()是否返回空值?如果是这样,OCR()给你一个空值是否正确?如何实现OCR?刚刚更新,谢谢。