1
我有一种方法可以在其中调用另一个具有回调的方法。我想在离开我的方法之前收到此回调。我看到一些其他使用闩锁的帖子。我的代码如下所示:如何在离开方法之前等待回调(Java)
public void requestSecurityToken(<some params>){
final CountDownLatch latch = new CountDownLatch(1);
MyFunction.execute(<someParams>, new RequestListener<Login>() {
@Override
public void onRequestFailure(SpiceException spiceException) {
//TODO
}
@Override
public void onRequestSuccess(Login login) {
//handle some other stuff
latch.countDown();
}
});
try {
latch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
这不起作用,该方法卡在await()函数中。会发生什么,该方法立即跳转到await(),并且不再进入onRequestSuccess()或onRequestFailure()方法。我想这是一个共同性问题......关于如何解决这个问题的任何想法?
编辑:添加了我创建闩锁的代码行。
纠正我,如果我错了,但在这种情况下,我的功能不会卡在await()以及? (正如我们在倒计时之前所称的那样) –