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()以及? (正如我們在倒計時之前所稱的那樣) –