如何通过Volley响应多个请求?

时间:2015-01-28 09:15:30

标签: android json android-volley

我一直在用Volley向我的api提出请求。到目前为止,一切都很顺利。我反序列化JSON响应并将对象缓存到我的数据库中,然后查询我的数据库以显示对象的数据。但是,如果我的回答是这样的话会怎么样:

{
  "Author": {
    "name": "John Doe",
    "Books": [
      {
        "url": "www.myapi.com/book/1"
      },
      {
        "url": "www.myapi.com/book/2"
      },
      {
        "url": "www.myapi.com/book/3"
      }
    ],
    "Articles": [
      {
        "url": "www.myapi.com/article/1"
      }
    ]
  }
}

url是实际对象的api端点。为了获得我的视图所需的所有信息,我将不得不进行for循环,并通过Books和Articles对象再发出4个api请求。我不确定实现这一目标的最佳方法是什么。在请求完成之前,我无法查询我的数据库,也无法知道上次请求何时完成。

这似乎很常见,但我还没有遇到任何涉及此类情况的事情。怎么办呢?

1 个答案:

答案 0 :(得分:0)

对于UX来说,这种反应很糟糕,因为在向用户展示内容之前,您需要请求N次。

如果您可以更改回复,我建议您这样做。

顺便说一句,您可以使用EventBus从Volley线程向主线程发送对象,这样您就可以在每次完成请求时更新UI。