【问题标题】:Return a result to same level as the call Volley android将结果返回到与调用 Volley android 相同的级别
【发布时间】:2018-02-22 11:39:21
【问题描述】:

我知道有一些非常相似的问题,但它们只是不同,以至于我无法让我的代码工作。

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

这就是我目前所拥有的......

回调interface

interface VolleyCallback {
  void onSuccess(boolean result);
}

查询token的Volley函数

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 变量中。

谢谢

【问题讨论】:

    标签: java android callback android-volley


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-04
      • 2018-12-02
      • 1970-01-01
      • 2020-10-11
      • 1970-01-01
      • 2013-08-09
      相关资源
      最近更新 更多