OnResponse排球延迟

时间:2017-01-31 04:53:54

标签: android web-services android-volley

我写了一个连接到服务器并使用我的用户名和密码登录的程序。它必须将表中的名字和姓氏也返回给app。 当我看到断点时,我在凌空写下这些代码。 但它在响应方法上有延迟.i测试了界面,但它不起作用。当我运行它显示我null但我在日志中看到正确的答案。 我怎么能正确地做到这一点?请帮帮我......

 public void logInAdminToServer(JSONObject jsonObject, final VolleyCallback callback) {

    JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST,

            "http://192.168.43.206/project-server/Admin.php?action=LogInAdmin", jsonObject,

            new Response.Listener<JSONObject>() {

                @Override

                public void onResponse(JSONObject response) {

                    if (response != null) {

                        try {

                            Log.i("Error", response.getString("AdminFirstName") + response.getString("AdminLastName"));

                            callback.OnSuccess(response.getString("AdminFirstN  ame") + "," + response.getString("AdminLastName"));

                        } catch (JSONException e) {

                            e.printStackTrace();

                        }

                    }

                }

            },

            new Response.ErrorListener() {

                @Override

                public void onErrorResponse(VolleyError error) {

                    Log.i("Error", error.toString());

                }

            });

    request.setRetryPolicy(new DefaultRetryPolicy(5000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

    Volley.newRequestQueue(G.context).add(request);

}



public interface VolleyCallback {

    void OnSuccess(String result);

}

另一个用于在类中获取数据的代码块

public void logInAdmin() {

    try {

        object.put("AdminUserName", adminUserName);

        object.put("AdminPassword", adminPassword);

    } catch (JSONException ex) {

        ex.printStackTrace();

    }

    //

    //basic login operation

    //

    thread = new Thread(new Runnable() {

        @Override

        public void run() {

            apiService.logInAdminToServer(object, new ApiService.VolleyCallback() {

                @Override

                public void OnSuccess(String result) {

                    if (result != null) {

                        String str[] = result.split(",");

                        adminFirstName = str[0];

                        adminLastName = str[1];

                    }

                }

            });

        }

    });

    thread.start();

}

为什么我得到空答案但在日志中显示正确答案。请帮助我。它让我发疯。

0 个答案:

没有答案