过去2天来我一直在面对这个问题,在这里我无法确定自己在做什么错。
情况是::我使用Retrofit(POST方法调用)将2个参数传递给我的API,第一个是Token
,第二个是CompanyId
。我得到约700多个数据作为列表(JSON响应)。因此,我尝试实现Android体系结构的分页库以从该列表中接收20个项目。
然后,当加载20个项目时,再加载20个项目,这样我可以比平常更快地收到回复。
我的假设:我认为我的API服务器页面没有分页。
我的问题是:是否可以在不分页API的情况下从700多个项目列表中接收20个项目。
每次调用API时,加载700多个项目都花费了太多时间。
在这种情况下如何使用分页库?
如果您需要我的代码的任何块,可以在下面的注释中进行请求。
谢谢您的任何帮助。
答案 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