【发布时间】:2020-07-01 06:55:55
【问题描述】:
按照 Paging 3 documentation,我设法让 Paging 库 3.0.0-alpha02 在 Kotlin 应用程序中与 RxJava2 一起使用。
但是,当我将分页代码移植到 Java 应用程序时,我遇到了一个问题,即数据是按页面检索的,但即使我不滚动回收站视图,页面检索也会在后台继续进行。也就是说,在加载第1页之后,它会加载第2、3、4页等,然后继续。
我正在视图模型中设置分页:
public Observable<PagingData<Item>> loadItems()
{
PagingConfig config = new PagingConfig(...);
Pager<Integer, Message> pager = new Pager<Integer, Item>(config, null, null,
() -> new MyPagingSource());
return PagingRx.getObservable(pager)
}
然后订阅activity/fragment:
disposable = viewModel.loadItems()
.subscribe( pagingData -> {
getAdapter().submitData(getLifecycle(), pagingData);
});
在 Java 应用程序中,我订阅的是片段而不是活动,但其他代码与 Kotlin 应用程序相同。
我意识到分页库3使用协程和内部流,所以我添加了这个依赖但它没有任何区别。
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-rx2:1.3.7'
编辑:
Kotlin 演示应用位于 GitHub 上,具有 RxJava 和 Flow 版本(基于 Android 示例)。它会在 Telephony 内容提供商上进行寻呼以获取 SMS 收件箱消息。
【问题讨论】:
标签: java android kotlin rx-java2 paging