1

我从过去 2 天开始就面临这个问题,我无法确定我在这里做错了什么。

情况是:我使用 Retrofit(POST 方法调用)将 2 个参数传递给我的 API,第一个是Token,第二个是CompanyId. 我得到大约 700 多个数据作为列表(JSON 响应)。所以我尝试实现 Android 架构的分页库以从该列表中接收 20 个项目。

然后在加载 20 个项目时,再加载 20 个项目,以便我比平时更快地收到我的回复。

我的假设:我认为我的 API 的服务器页面没有分页。

我的问题是:是否可以在不分页 API 的情况下从 700 多个项目的列表中接收 20 个项目。

每次调用 API 时,加载 700 多个项目都需要花费太多时间。

在这种情况下如何使用分页库?

如果您需要我的任何代码块,您可以在下面的评论中请求。

任何帮助将不胜感激,谢谢。

4

2 回答 2

3

是否可以在不分页 API 的情况下从 700 多个项目的列表中接收 20 个项目。

不会。如果 API 吐出那么多数据并且不允许您请求更少,那么您就无法影响这种行为。

在这种情况下如何使用分页库?

您获取 700 多条记录并在设备上本地存储在数据库中的内存结构中,这无关紧要。然后所有的显示都应该基于缓存的数据完成,不做 API 调用。这是非常好的场景,因为分页库抽象了数据源。

https://developer.android.com/topic/libraries/architecture/paging/

于 2018-09-16T13:40:38.533 回答
0

如果您需要使用项目 N 中的数据来获取项目 N+1,请使用 ItemKeyedDataSource。例如,如果您正在获取讨论应用程序的线程评论,您可能需要传递最后一条评论的 ID 以获取下一条评论的内容。 https://developer.android.com/topic/libraries/architecture/paging/data

于 2019-12-16T09:53:37.930 回答