java - 将结果返回到与调用 Volley android 相同的级别

标签 java android callback android-volley

我知道有一些几乎相同的问题,但它们的不同之处足以让我无法让我的代码正常工作。

我正在使用 volley 来检查 token 是否有效,并希望能够将结果存储在与调用相同的级别,即模拟 Boolean isValid = validToken() .

这就是我到目前为止所拥有的......

回调接口(interface)

interface VolleyCallback {
  void onSuccess(boolean result);
}

Volley 函数检查 token

private void validToken(final String token, final VolleyCallback callback){

        String url = "http://example/api/validate_token";

        JsonObjectRequest jsObjRequest = new JsonObjectRequest
                (Request.Method.POST, url, null, new Response.Listener<JSONObject>() {

                    @Override
                    public void onResponse(JSONObject response) {
                        callback.onSuccess(true);
                    }
                }, new Response.ErrorListener() {

                    @Override
                    public void onErrorResponse(VolleyError error) {
                        callback.onSuccess(false);
                    }
                }){
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                Map<String,String> headers = new HashMap<String, String>();
                headers.put("Authorization", token);
                return headers;
            }
        };

        //Access the RequestQueue through the singleton class.
        MySingleton.getInstance(this).addToRequestQueue(jsObjRequest);
    }

函数调用

Boolean tokenIsValid;
validToken("Bearer eyJhbGciOiJ", new VolleyCallback() {
                @Override
                public void onSuccess(boolean result) {

                }
            });

我想要做的就是将 validToken 调用的结果存储在 tokenIsValid 变量中。

谢谢

最佳答案

在我的问题中,我使用异步 Volley 请求并希望立即返回值。这是错误的,我应该使用带有超时的同步请求。 查看此post (看看关于不锁定线程的答案。异步请求不应该用于像我试图使用它的事情。

关于java - 将结果返回到与调用 Volley android 相同的级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48926493/

相关文章:

java - AOP 注释 - 在方法级别工作,而仅对类进行注释

java - 为什么我的 java 文本游戏不运行?

android - java.lang.NoSuchMethodError : No virtual method load(Landroid/net/Uri;)Lcom/bumptech/glide/DrawableTypeRequest;

WCF回调: Is it interoperable with Java?

ios - iOS Twitter框架:如何获取(在回调中)用于发推的最后一个Twitter帐户?

java - JSR 352 : Wildfly9/JBeret - How to call a batch job that it is not contained at the same deployment file level

java - PaintComponent Java 的问题 - Swing

java - Dagger 2错误 "android.app.Application cannot be provided without an @Inject constructor or from an @Provides-annotated method"

android - AndEngine GLES2 中的编译错误

javascript - 在回调中获取上传图像的高度和宽度 -javascript