如何预取Android的数据

时间:2015-07-06 23:58:40

标签: android android-asynctask

我正在制作电影应用,当用户首次打开应用时,我会获取最新的热门电影数据并将其填充到我的ListView中。初始提取提供了电影列表,但仅提供填充ListView的基本信息(id,名称,评级,发布数据,海报图像URL)。为了获得剩余的数据(运行时间,标语,描述,电影网站等),我必须从/ movies / {id}端点获取每部电影。此外,对于预告片列表,我需要从/ movies / {id} / videos中获取。目前,当我们使用AsyncTask选择列表中的电影,然后使用初始详细信息加载的数据设置视图时,我正在获取电影细节数据。我在Content Provider和SQLite中缓存数据。

我的问题是:

  1. 如何在获取电影的初始列表后预取数据 从第一次获取?我目前正在使用AsyncTask 初始提取,我只是在中间启动AsyncTask列表 最初的任务?
  2. 我是否应该在这种情况下使用AsyncTask或者在那里 更好的选择?似乎SyncAdapter是一个好主意 初始提取,但不确定什么是最好的用于 其他细节/预告片。
  3. 几周前我刚刚开始使用Android,所以我不知道我是否应该这样做,或者是否有更好的解决方案。目前一切正常,但我不确定我是否走上了正确的道路。我确实阅读了this,但想要了解如何预取数据的更具体方法。

1 个答案:

答案 0 :(得分:0)

这听起来像是Volley的一个很好的用例。

[1] - 完成初始提取后,您可以创建Volley RequestQueue并触发一堆请求(String / JSON),然后您可以像现在一样解析/缓存结果。 Volley是异步的,所以你不必担心将它们添加到队列的位置,但回调是在UI线程上执行的,所以要确保它们是合理的(它们可能导致动画抖动)

[2] - 见上文。