如何同步执行RoboSpice请求?可能吗?我想在IntentService中使用RoboSpice。
编辑:
有时需要同步执行某些操作,例如在服役。在我最近的项目中,我必须对一些不同类型的请求进行排队,并且希望将IntentService与RoboSpice一起使用。就我而言,当我执行不同的请求时,我需要等待request1
的结果,然后将数据从其中传递给request2
并执行它。
我想要某种批处理请求队列。可以说我们有两种类型的请求:request1
和request2
。 request2
需要通过request1
获取的数据:
执行request1
等待
获取request1
提取的数据并传递给request2
执行request2
等待
转到1。
我想使用IntentService(队列),但是由于异步而在启动请求后死了。
我认为使用侦听器或CountDownLatch并不是最好的方法。
最佳答案
正如Riccardo Ciovatti on the RoboSpice mailing list所建议的那样,对您的问题的直接答案是:
final CountDownLatch latch = new CountDownLatch(1);
final YourRequest request = new YourRequest();
spiceManager.execute(request, new RequestListener<YourResponse>() {
@Override
public void onRequestFailure(SpiceException spiceException) {
latch.countDown();
}
@Override
public void onRequestSuccess(YourResponse response) {
latch.countDown();
}
});
latch.await();
但这不是一个好习惯,除非它在后台线程上执行。异步处理是RoboSpice的基本功能。它使UI线程保持空闲状态。
关于robospice - 如何同步执行RoboSpice请求?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23243125/