2

我正在尝试使用新的 Android 架构组件设置我的所有列表:Room Persistance LibraryPaging Library。但我面临以下问题。想象一个应用程序有很多相同型号的不同列表。每个列表都有自己的对服务器的 url 请求。有些元素可以在不同的反应中重复。所以我认为我必须将每个响应的所有元素插入并更新到该模型的表中。此外,每个请求都有页面。例如,elements/famous/0elements/famous/1。因此,当收到第 1 页响应时,包含列表 0 元素的列表必须添加第 1 页返回的元素。

返回 LivePagedListProvided 的 Room 请求如下所示:

@Query("SELECT * FROM elements")
fun getElements(): LivePagedListProvider<Int, Model>

当查询的某些元素发生更改,或者添加到数据库中的元素影响了查询时,LivePagedListProvider可观察对象提供了更改,因此 UI 会自动更改。

问题是:根据使用分页库的不同请求,我应该如何保存和检索可以包含在不同列表中的元素?

4

1 回答 1

0

如果您只使用一个表来本地存储接收到的数据(从不同的请求到服务器),那么在每次更新此表后,您的所有数据源都将失效,这就是我们看到自动更新的原因。对于不同的请求,您可以使用不同的表,但这并不好)我认为您可以编写select query一些条件,这些条件表示您对服务器的请求之间的差异,如果这些请求中的结果模型相同。

于 2017-11-16T14:02:51.690 回答