【发布时间】:2016-10-04 15:56:39
【问题描述】:
我正在编写一个使用 Google 的 Volley API 执行一系列请求的应用。问题是我不知道请求何时完成。我需要知道请求是否已经完成,然后再继续前进。我不能只用 while 循环或 sleep/wait 方法等待一段时间,因为它似乎停止了正在执行请求的线程。显然,请求具有 onResponse 回调,我可以使用它来标记单个请求何时完成。但是我有一个发出多个请求的活动,我希望该活动处于待命状态,直到所有请求都得到处理。就像我说的那样,我不能简单地等待/睡眠,因为这会使请求队列进入睡眠状态。我需要编写一个监视请求的服务吗?我真的不知道该怎么做。
附:我正在使用here 描述的单例请求队列。
【问题讨论】:
-
不等待就在
onRespnse()中调用另一个请求有什么问题? -
嗯,这实际上是一个聪明的主意。因此,您建议不要一次将所有请求排入队列,而是通过 onResponse 回调一次将它们链接起来?
-
是的,这样你就可以保持流量。另外,我认为你在这里有更多的控制权。假设,你想做 10 个请求,但是,当 4 个请求完成时,服务器或互联网会以某种方式出现故障,那时你可以停止调用其他请求并向用户显示出现问题的通知。
-
你能解决这个问题吗?我正在寻找类似问题的答案。如果您的解决方案有效,您能否更新一下?
-
猜猜 OP 不想分享他们的知识
标签: java android android-volley