改造大数据负载

时间:2019-05-31 19:25:51

标签: android retrofit retrofit2

我有一个API端点,该端点有时可以返回较大的数据负载(而不是图像/文件),并且有时负载大小可能导致我的应用抛出out of memory exception

这是我的界面外观的示例

@GET("People")
fun getPeopleAsync(): Deferred<Response<List<Person>>>

我很好奇,使用@Streaming可以处理数据有效载荷吗?我只看到它与文件一起使用,所以它甚至可以与数据有效载荷一起使用吗?

还有其他方法来处理翻新中的大型有效载荷吗?

1 个答案:

答案 0 :(得分:0)

如注释中所述,获取大列表的常见模式是使用分页。因此,您需要先implement the pagination in the Server

呼叫将如下所示:

@GET("People")
fun getPeopleAsync(pageIndex: Int, pageSize: Int = 10): Deferred<Response<List<Person>>>

您需要detect when the RecyclerView reaches the bottom再次使用下一页索引来调用API,同时在屏幕上显示进度条或加载视图,直到收到响应为止