Android RxJava筛选器不向订阅发送结果

Android RxJava筛选器不向订阅发送结果,android,rx-java,rx-java2,rx-android,Android,Rx Java,Rx Java2,Rx Android,我有RxJava过滤器来获取POA,但是POA没有被删除(停用),我很确定我有一个结果,但是我在subscribe中没有得到任何结果 Disposable disposable = appDatabase.poaDao().getAllMine() .flatMap(poaDbs -> Flowable.fromIterable(poaDbs)) .filter(poaDb -> !poaDb.isDeleted()) .toList() .subsc

我有RxJava过滤器来获取POA,但是POA没有被删除(停用),我很确定我有一个结果,但是我在subscribe中没有得到任何结果

Disposable disposable = appDatabase.poaDao().getAllMine()
    .flatMap(poaDbs -> Flowable.fromIterable(poaDbs))
    .filter(poaDb -> !poaDb.isDeleted())
    .toList()
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(poaDbs ->
                   view.onActivePoasIssuedByMe(poaDbs),
               throwable -> view.handleError(throwable));

原因可能是什么?我已尝试过调试,但它始终无法到达SUNBCRIBE()。

您的问题是观察对象未完成,因此将永远不会执行
.toList()

你说你需要过滤你得到的列表,但如果是这样,你有一个不同的选择

而不是这样做:

.flatMap(poaDbs -> Flowable.fromIterable(poaDbs))
    .filter(poaDb -> !poaDb.isDeleted())
    .toList()
您要执行以下操作:

.flatMapSingle(poaDbs -> Observable.fromIterable(poaDbs)
     .filter(poaDb -> !poaDb.isDeleted())
     .toList())
请注意,
.filter
.toList
运算符应用于内部可观察对象


额外注意:当使用Kotlin时,这更容易,因为它提供了对集合的
筛选
操作,并且您不必依赖RxJava或Java8流

这与此有关吗?可能是因为它在我删除toList后返回所有结果,但我需要筛选数据。是否有其他方法以反应式方式过滤数据?将
getAllMine()
定义为
Single
,您应该得到一个要过滤的结果列表。