如何侦听更改,然后在RxAndroid中执行操作? 公共可流动执行( 可流动分页(源){ 返回可流动。组合测试( McConnectionState.getConnectionState(), mSessionInfo, 分页源, 保持架(联合收割机) .flatMap(this::toViewModel); }

如何侦听更改,然后在RxAndroid中执行操作? 公共可流动执行( 可流动分页(源){ 返回可流动。组合测试( McConnectionState.getConnectionState(), mSessionInfo, 分页源, 保持架(联合收割机) .flatMap(this::toViewModel); },android,rx-java,rx-java2,rx-android,Android,Rx Java,Rx Java2,Rx Android,现在,我想在第二页上启动perform() 所以我的重点是侦听分页更改,当它不是第一页(0)时,调用perform() 最终可流动分页源= mPagination.observe(this.filter)(it->it.getOffset()!=0); 我不知道如何组合这些功能。您可以更改您的执行功能: final Flowable<PaginationParam > paginationSource = mPagination.observe(th

现在,我想在第二页上启动perform() 所以我的重点是侦听分页更改,当它不是第一页(0)时,调用perform()

最终可流动分页源=
mPagination.observe(this.filter)(it->it.getOffset()!=0);

我不知道如何组合这些功能。

您可以更改您的
执行
功能:

final Flowable<PaginationParam > paginationSource =
                mPagination.observe(this).filter(it -> it.getOffset() != 0);
perform(paginationSource)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(viewModel -> {
 // doAction
}, ex-> {
 // Error
}, ()-> {
 // Completed, will not emit new action
})

什么是
pagination.observe()
?从{ScrollListener}观察“onLoadMore()”,并在事件发生时发出{PaginationParam}。虽然此代码可能会解决问题,但一个好的答案还应该解释它的作用以及它的帮助方式。
perform(paginationSource)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(viewModel -> {
 // doAction
}, ex-> {
 // Error
}, ()-> {
 // Completed, will not emit new action
})
public Flowable<ViewModel> perform(PaginationParam paginationParam) {
    return Flowable.combineLatest(
                    mConnectionState.getConnectionState(),
                    mSessionInfo,
                    {state, info -> Holder.combine(state, info, paginationParam)})
            .flatMap(this::toViewModel); 
paginationSource.flatMap( it -> perform(it))
            .subscribe(...)