我有一个API端点,该端点有时可以返回较大的数据负载(而不是图像/文件),并且有时负载大小可能导致我的应用抛出out of memory exception
这是我的界面外观的示例
@GET("People")
fun getPeopleAsync(): Deferred<Response<List<Person>>>
我很好奇,使用@Streaming
可以处理数据有效载荷吗?我只看到它与文件一起使用,所以它甚至可以与数据有效载荷一起使用吗?
还有其他方法来处理翻新中的大型有效载荷吗?
答案 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,同时在屏幕上显示进度条或加载视图,直到收到响应为止