我正在尝试使用新的 Android 架构组件设置所有列表:房间持久性库 https://developer.android.com/topic/libraries/architecture/room.html and 分页库 https://developer.android.com/topic/libraries/architecture/paging.html。但我面临以下问题。想象一个应用程序有很多相同型号的不同列表。每个列表都有自己的对服务器的 url 请求。某些元素可以在不同的响应中重复。所以我认为我必须插入和更新每个响应的所有元素到该模型的表。此外,每个请求都有页面。例如,elements/famous/0
, elements/famous/1
。因此,当收到第 1 页响应时,包含列表 0 的元素的列表必须添加第 1 页返回的元素。
返回 LivePagedListProvided 的 Room 请求如下所示:
@Query("SELECT * FROM elements")
fun getElements(): LivePagedListProvider<Int, Model>
当查询的某些元素发生变化,或者添加到数据库的元素影响查询时,LivePagedListProvider
observables 提供了变化,因此 UI 会自动变化。
问题是:我应该如何使用分页库根据不同的请求保存和检索可以包含在不同列表中的元素?
如果您仅使用一张表来本地存储收到的数据(来自对服务器的不同请求),那么每次更新此表后,您的所有数据源都将失效,这就是我们看到自动更新的原因。对于不同的请求,您可以使用不同的表,但这不好)
我想你可以写select query
某些条件代表您对服务器的请求之间的差异,如果这些请求中的结果模型相同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)