【问题标题】:initial load includes all existing data from Room DB初始加载包括 Room DB 中的所有现有数据
【发布时间】:2021-07-26 13:19:41
【问题描述】:

我已经实现了分页将我的数据缓存到房间数据库中,并创建了一个流来从数据库加载数据(如此处所述:Page from network and database

我还添加了一个自定义分页源,它与默认的 (LimitOffsetPagingSource) 分页源几乎相同,只需要少量额外的数据修改。

基本上一切正常,除了分页流的第一个数据收集。当房间 db 中已有数据时,collectLatest 收集当前在数据库中的所有现有数据。 之后,我的远程中介立即清除了数据库,一切正常,但是数据库重置对于第一次数据收集来说太晚了。

我的 RecyclerView 没有嵌套在任何其他可滚动视图中,而是嵌套在 SwipeRefreshLayout 中。

这里是 PagingSource、RemoteMediator 和适配器快照大小的日志输出:

有谁知道,为什么要收集所有数据,或者如何解决这个问题?

【问题讨论】:

    标签: android android-paging android-paging-3


    【解决方案1】:

    经过一些测试,我意识到,适配器填充了 null 占位符以匹配表的当前大小。所以,这应该是正确的行为,不用担心:D

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-25
      • 2018-05-05
      • 1970-01-01
      • 2013-08-07
      相关资源
      最近更新 更多