Android 如何检查Observable是否为空或返回布尔值

Android 如何检查Observable是否为空或返回布尔值,android,rx-java,rx-android,Android,Rx Java,Rx Android,假设我可以观察到调用rest api服务,然后将结果存储在数据库中: 公共可观测initDB(){ 返回此.restApi.feedsEntityList() .flatMap(feedEntityList->this.mNewsCache.saveFeeds(feedEntityList)); } save Observable执行数据库保存,如果成功,则返回true;如果发生错误,则返回false: 公共可观察保存提要(列表提要实体){ if(feedEntity!=null){ 返回Ob

假设我可以观察到调用rest api服务,然后将结果存储在数据库中:

公共可观测initDB(){
返回此.restApi.feedsEntityList()
.flatMap(feedEntityList->this.mNewsCache.saveFeeds(feedEntityList));
}
save Observable执行数据库保存,如果成功,则返回true;如果发生错误,则返回false:

公共可观察保存提要(列表提要实体){
if(feedEntity!=null){
返回Observable.create(newobservable.OnSubscribe(){
@凌驾
公用无效呼叫(用户)
我该如何检查observable是否返回true、false[…]

当您订阅发出true或false的
可观察
时,将使用true或false值调用
onNext(布尔)

例如:

saveFeed(feeds).subscribe(new Action1<Boolean>() {

    @Override
    public void call(Boolean result) {
        // result will be either true or false.
    }

});
saveFeed(feed).subscribe(新操作1(){
@凌驾
公共无效调用(布尔结果){
//结果将为真或假。
}
});
我应该如何检查observable是否返回[…]空observable

Observable.empty()
不发出任何信息,然后完成。您的
onNext()
将永远不会被调用,但将调用
onComplete()

如果您确实想,您可以监视是否调用了
onNext()
,如果未调用
onNext()
,但调用了
onComplete()
,您知道它从未发出任何信息。但这可能不是您真正想要的

在最后一次观察中,我不确定我是否做得正确。例如,如果数据库保存操作成功,则返回true。否则返回false

你不是


您从未调用subscriber.onNext(false)
,因此您的可观察对象将永远不会发出
false
可观察对象在默认情况下不会发出
false
-它根本不会发出任何东西。

太好了…指的是第一个观察者..它将在flatMap转换后终止吗?在另一个世界中,在保存数据后,该观察者会发生什么?函数每次从第一个可观察对象调用
onNext()
时,都会调用in
flatMap()
。一旦
saveFeeds()
可观察对象完成,整个链将完成,因为这是链中最后一个可观察对象。