我应该如何使用我从webserver中获取的数据,在android中

时间:2017-03-16 10:17:37

标签: android android-recyclerview

我尝试在列表(RecyclerView)中显示我从rest webservice(spring)获取的数据。数据可以包含数千行。我该如何使用这些数据?

  • 我应该获取所有数据(或100行)并将它们存储在本地,并从本地读取它们以查看列表。如果我使用这些,我应该如何刷新本地数据?
  • 我应该获取20行并查看它们,当用户向下滚动并到达最后一项时,我再获取20行?
  • 或者我应该用另一种方式? 如果我将所有数据存储为数组,它可以抛出outofmemoryexception。是否有任何教程或关键词要搜索?

Twitter或Instagram如何使用这些数据?在推特列表中可以有很多项目,但它不会崩溃,推特可以显示以前下载,离线的项目(这意味着在本地存储数据,不是吗?)

3 个答案:

答案 0 :(得分:1)

要使用RecyclerView使应用程序更顺畅,请使用Endless Scrolling。 一次加载20个项目,在您的服务器API调用上应用分页。

使用OKHttp Response Caching将每个响应从服务器缓存到本地存储。

答案 1 :(得分:0)

创建一个本地数据库,存储您已在数据库中加载的所有数据,并在数据可能发生变化时添加“新鲜度”,如时间戳。如果您的数据项很大,请考虑先加载数据的“索引”,然后再加载单个详细信息。

答案 2 :(得分:0)

绝对不应该一次获取所有数据。阅读有关Android中动态数据的分页。 Recycler View还对静态数据使用内置分页,但是在动态数据的情况下,即当您从api检索数据时,您应该在用户向下滚动列表以获取下一组数据时向您的api发送请求。为此,您必须扩展RecyclerView的OnScrollListener并覆盖OnScrolled方法。