Sam*_*ari 2 sorting android android-architecture-components android-paging
我最近看到谷歌有一个很棒的数据分页库。
在这个 Google IO 中:
Android Jetpack:使用 RecyclerView 和 Paging 管理无限列表(Google I/O '18)
他们解释了如何Data + Network DataSource
从数据库中创建和获取数据Single Source of Truth
,当数据库没有数据时,它会通过 .NET 从网络请求更多数据BoundaryCallback
。
因此,假设我在服务器上有一个电影列表。客户端(Android 用户)可以按受欢迎程度、标题、发布日期等对它们进行排序。
因此,如果用户第一次按标题对电影进行排序,一切都会很好,因为数据库中没有数据,并且将从服务器请求数据以按标题对它们进行排序并将其发送回来。但是,如果用户尝试按受欢迎程度对它们进行排序怎么办?由于数据库中存在大量电影(例如 50 部电影),它会按受欢迎程度对少量电影进行排序,然后尝试从服务器获取数据,这不是一个好的体验。
我无法为每种排序类型制作表格,因为这不是一个好的做法。那么我该如何克服这个问题呢?
非常感谢
小智 5
你的问题有道理。IMO,您不必为每种排序类型创建表格,但您可以跟踪数据来自哪个端点。例如,您有三个带有 query ?sort=default
、?sort=ratings
、的端点?sort=released_date
。您可以向数据库模型类添加三个额外的布尔属性(例如fromDefault
、fromRatings
、fromReleasedDate
),以跟踪它来自哪个端点,并在相同的电影数据从多个端点到达时更新这些相应的标志。
现在,当您按评级排序时,您将使用 SQL 查询来过滤标志为 的fromRatings
那些true
。但最初,您将没有任何数据,因此您会BoundaryCallback
启动服务器请求,获取评级排序的电影数据,然后在保存之前,您必须覆盖fromRatings
to true
。希望能帮助到你。
归档时间: |
|
查看次数: |
1588 次 |
最近记录: |