Android Volley onResponse在某些活动中未被调用

时间:2018-04-20 07:56:18

标签: android callback android-volley

我正在制作Volley GET请求,直到我进入特定活动,然后它停止调用onResponse中的Response.Listener。这是我的Volley Request方法:

    public static void stringReqGet(String url, final VolleyCallback callback){
    StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            System.out.println("In VolleyRequest onResponse(): " + response);
            callback.onSuccess(response);
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d("Error" ,error.getMessage());
        }

    });
    System.out.println("Adding request to queue: " + stringRequest.toString());
    Utilities.getInstance().addToRequestQueue(stringRequest);
    }

以下是我在相关活动中提出请求的方式:

CourseUtil.loadCourse(courseID, new VolleyCallback() {
        @Override
        public void onSuccess(String response) {
            System.out.println("JSON Success");
            courseJSON = response;
        }
});

并在CourseUtil课程中:

public static void loadCourse(int courseID, VolleyCallback callback){
    VolleyRequest.stringReqGet(Const.URL_COURSE + courseID,callback);
}

我没有得到任何排球错误看似没有回应。这是我的(截断的)日志:

I/System.out: Adding request to queue: [ ] http://server/courses/267267267 0xebb503b0 NORMAL null
I/System.out: In VolleyRequest onResponse(): *Correct Response Object*
.
.
.
I/System.out: 267267267  <-- Same course ID used in first request
I/System.out: Adding request to queue: [ ] http://server/courses/267267267 0xebb503b0 NORMAL null
*onResponse never called*

第一次发出此请求时,您可以看到调用onResponse()方法并返回正确的对象。此“正确”请求的签名与上述请求完全相同。下次确切请求时,onResponse永远不会被调用,我没有错误。

我在这里查看了其他帖子,但他们的解决方案都没有解决我遇到的问题,没有任何错误让人很难知道发生了什么。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

把:

System.out.println("JSON Success");
courseJSON = response;

进入回调之外的单独方法,现在可以正常工作。不知道为什么......