如何在不阻塞主线程的情况下正确创建SettableFuture?

时间:2019-06-28 08:17:07

标签: java android azure-ad-graph-api

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

0 个答案:

没有答案