相关疑难解决方法(0)

是否有任何方式在响应完成之前保持Volley请求

过去使用AsyncTask时我们有两个方法doInBackground()来完成所有工作,onPostExecute()在所有数据完成后做出更改,所以我可以停止所有代码,直到正确的数据回来,然后用这个数据做我需要的.

但是当我尝试移动到Volley库时,当调用请求时我只有onResponse()方法,但是我需要做一些代码依赖于后台数据的问题但是此时无法保存代码.

那么有没有办法在响应完成之前保持Volley请求?

*我知道我们可以覆盖onResponse()来完成我们在完整数据返回时所需要的东西,但这很好地是很多嵌套编码和方法.

感谢所有能提供帮助的人.

android android-volley

5
推荐指数
1
解决办法
7101
查看次数

等待Async Volley请求的结果并将其返回

下面是一个方法,我试图通过调用getSelf()来检索用户对象.问题是结果始终为null,因为Volley请求在返回结果时尚未完成.我对异步进程有些新意,所以我不确定让方法等待API调用结果返回UserBean对象的最佳方法.谁能给我一些帮助?

public UserBean getSelf(String url){

    RpcJSONObject jsonRequest = new RpcJSONObject("getSelf", new JSONArray());

    JsonObjectRequest userRequest = new JsonObjectRequest(Request.Method.POST, url, jsonRequest, 
        new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {

                String result;
                try {
                    result = response.getString("result");
                    Gson gson = new Gson();
                    java.lang.reflect.Type listType = new TypeToken<UserBean>() {}.getType();

                    //HOW DO I RETURN THIS VALUE VIA THE PARENT METHOD??
                    userBean = (UserBean) gson.fromJson(result, listType);

                } catch (JSONException e) {
                    e.printStackTrace();
                }

            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
               Log.e("Error:", …
Run Code Online (Sandbox Code Playgroud)

java android asynchronous anonymous-function android-volley

3
推荐指数
2
解决办法
1万
查看次数