Я использую Microsoft Graph API 1.0. Метод login () использует обратный вызов для оповещения, когда вход в систему завершился успешно или не удалось.
Мне нужно подождать, пока не сработает обратный вызов, прежде чем продолжить . Для этого я пытаюсь использовать SettableFuture, но он блокирует основной поток, который мне кажется, и обратный вызов никогда не срабатывает (но происходит, если я не использую SettableFuture).
public SettableFuture<Boolean> login(){
final SettableFuture<Boolean> result = SettableFuture.create();
authenticationAdapter.login(activity, new ICallback<Void>() {
@Override
public void success(final Void aVoid) {
//Some stuff;
result.set(true);
}
@Override
public void failure(final ClientException ex) {
//Some stuff
result.setException(ex);
}
});
return result;
}
Как исправить этот код, чтобы обратный вызов включался в действие, указанное в аргументе, но блокировался с помощью SettableFuture (мне нужно создать конкретное действие для прослушивания обратного вызова)?