【发布时间】: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