如何在 Paging 3 中使用网络绑定资源?

Posted

技术标签:

【中文标题】如何在 Paging 3 中使用网络绑定资源?【英文标题】:How to use Network Bound Resource with Paging 3? 【发布时间】:2021-11-11 08:47:24 【问题描述】:

我想使用网络绑定资源,这意味着房间缓存与分页 3。如果有人这样做,请发布您的答案,谢谢。

【问题讨论】:

【参考方案1】:

来自architecture-components-samples 的NetworkBoundResource 只是一个帮助类,它封装了对网络+数据库缓存后面的资源的访问。在 Paging 中实现这种分层数据的规范方法是使用RemoteMediator,您可以将其传递给Pager 的构造函数。

RemoteMediator 本质上充当回调,当PagingSource 用完要从数据库加载的数据时触发,然后您可以在其中进行网络获取,将新项目写入数据库并使其无效以获取分页选择上新项目。这看起来很迂回,但它确保您拥有单一的事实来源,因此您的应用中显示和加载的所有项目都基于数据库中的内容。

【讨论】:

非常感谢。 没问题 - 这里有一个很棒的指南:developer.android.com/topic/libraries/architecture/paging/…,以防您在实施方面需要更多帮助。 是的,我已经检查过了。实际上,我正在使用网络绑定资源进行搜索。但对我有用的东西实际上是远程调解器。再次感谢。

以上是关于如何在 Paging 3 中使用网络绑定资源?的主要内容,如果未能解决你的问题,请参考以下文章

深入探索 Paging 3.0: 分页加载来自网络和数据库的数据 | MAD Skills

如何在 PagingSource LoadResult Page Paging 3 中使用 itemAfter 或 itemBefore

获取数据并绑定到 UI | MAD Skills

在使用 Paging library 3.0 时,我们如何将整个对象列表传递给 PagingDataAdapter?

Paging 3 - 如何在 PagingDataAdapter 完成刷新并且 DiffUtil 完成差异后滚动到 RecyclerView 的顶部?

如何检查 Paging 3 库中的列表大小或空列表