我正在使用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阻止(我必须创建一个特定的活动来侦听回调)吗?