我正在制作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
永远不会被调用,我没有错误。
我在这里查看了其他帖子,但他们的解决方案都没有解决我遇到的问题,没有任何错误让人很难知道发生了什么。
非常感谢任何帮助。
答案 0 :(得分:0)
把:
System.out.println("JSON Success");
courseJSON = response;
进入回调之外的单独方法,现在可以正常工作。不知道为什么......