如何在没有服务器端分页的情况下在Android中使用分页?

时间:2018-09-16 12:56:15

标签: android android-recyclerview android-architecture-components android-paging

过去2天来我一直在面对这个问题,在这里我无法确定自己在做什么错。

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

然后,当加载20个项目时,再加载20个项目,这样我可以比平常更快地收到回复。

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

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

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

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

如果您需要我的代码的任何块,可以在下面的注释中进行请求。

谢谢您的任何帮助。

2 个答案:

答案 0 :(得分:2)

  

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

不。如果API吐出大量数据并且不允许您减少请求,那么您将无法影响这种行为。

  

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

您获取700多个记录并将其本地存储在数据库中的设备中(内存结构)并不重要。然后,所有显示都应基于缓存的数据完成,而不进行API调用。当分页库抽象数据源时,这是完美的方案。

请参见https://developer.android.com/topic/libraries/architecture/paging/

答案 1 :(得分:0)

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