无法读取截击返回的响应

Cannot read response returned from volley

我正在使用 volley 从 Web 服务获取一些数据。我正在使用以下格式来读取 volley 的响应。

我发出截击请求调用如下定义的方法,并在截击请求发生时显示 progressDialog

public static void GetDetails(String tag, Handler handler,
        String Token,String TID){
    String url = "http://myWebserviceMethod"

    JsonArrayRequest jsArrRequest = new JsonArrayRequest(url,
            ResponseListener.<JSONArray> createGenericReqSuccessListener(
                    handler, Constant.MessageState.SUCCESS),
            ResponseListener.createErrorListener(handler,
                    Constant.MessageState.FAILED));

    jsArrRequest.setShouldCache(false);
    jsArrRequest.setRetryPolicy(new DefaultRetryPolicy(2 * 1000, 3, 1.0f));
    MyGlobalClass.getInstance().addToRequestQueue(jsArrRequest);
}

我有一个通用的响应侦听器,它将 return 我的常量和如下响应

public class ResponseListener<T> {

public static <T> Response.Listener<T> createGenericReqSuccessListener(
        final Handler handler, final int messageId) {
    return new Response.Listener<T>() {
        @Override
        public void onResponse(T response) {
            Message msg = new Message();
            msg.arg1 = messageId;
            msg.obj = response;
            handler.sendMessage(msg);
        }
    };
}

public static Response.ErrorListener createErrorListener(
        final Handler handler, final int messageId) {
    return new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Message msg = new Message();
            msg.arg1 = messageId;
            msg.obj = error;
            error.printStackTrace();
            handler.sendMessage(msg);
        }
    };
}    

并且我 reading/parsing activity 中的响应使用 Handlers 以下列方式

Handler handler = new Handler() {
    public void handleMessage(android.os.Message msg) {

        switch (msg.arg1) {
        case Constant.MessageState.SUCCESS: // Constant declared in a public class
            parseSaveResponse((JSONArray) msg.obj);
            break;

        case Constant.MessageState.FAILED: // Constant declared in a public class
            progressDialog.dismiss();
            ShowError((VolleyError) msg.obj);
            break;
}

它工作正常,但有时消息永远不会发送到 handler 并且 none 的案例是满意的,让我 progressDialog 无休止地加载。

这背后的原因可能是什么?

期待这方面的一些线索。 :)

谢谢。

我在同一线程中同时调用 Google 地图和截击服务。

像下面这样调用网络服务,它起作用了。

map.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() {
        @Override
        public void onMapLoaded() {
            //volley web service request.
        }
});