【发布时间】:2021-08-30 15:12:55
【问题描述】:
我想使用分页库 2 实现我的自定义 PagedList.BoundaryCallback 与协程、liveData 和存储库模式,但我找不到这些库集成的好例子。
即使在Android official samples 中,他们也使用入队和回调来执行带有分页 2 的 API 请求...
我也阅读了此 Medium post,但它在边界回调内使用协程范围,我认为这不是一个好习惯。
有什么方法可以实现吗?还是应该迁移到 Paging 3?
【问题讨论】:
-
您可以使用
suspendCancellableCoroutine或suspendCoroutine将enqueue调用转换为挂起函数。您可以使用callbackFlow将重复调用的回调转换为您可以在协程中收集的流。我不使用分页,所以无法写出正确的答案。以上应该足以让您谷歌一些如何进行这些转换的示例。虽然如果你正在经历迁移到协程的麻烦,我不明白你为什么不迁移到最新的分页库。 -
我对具体的分页库了解不多,但在版本 3 中明确说明他们添加了对 Kotlin 协程的一流支持,所以如果这是一个选项,我会诚实地去升级你。如果没有,那么是的,您可以使用@Tenfour04 提到的技术
标签: android kotlin kotlin-coroutines android-paging-library