android中的Volley不再起作用了......?

时间:2015-12-10 19:08:01

标签: android android-volley

我正在尝试更清楚地编写一些Android代码(避免类内定义),但我偶然发现了一个问题,例如凌空所描述的here,似乎不起作用!首先,这是我的代码片段:

public class ServiceStock {

    public Context context;

    private class ResponseListener implements Response.Listener<String>  {

        ResponseListener() {
            Log.d("test Listener", "constructor");
        }

        @Override
        public void onResponse(String response) {
            Log.d("test Listener:", response);
        }

    }

    private class ErrListener implements Response.ErrorListener  {

        public Context context;

        ErrListener(Context context) {
            this.context = context;
            Log.d("error Listener", "constructor");
        }


        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText(this.context, "Did not work", Toast.LENGTH_SHORT).show();
            Log.d("error Listener", "error");
        }


    }

    public ServiceStock(Context context)
    {
        this.context = context;
    }

    public String getCurrentStockPrice(String symbol) {
        Log.d("ServiceTest", "method_start");
        RequestQueue queue = Volley.newRequestQueue(this.context);
        String url = "http://finance.yahoo.com/d/quotes.csv?s=" + symbol + "&f=sl1";

        ResponseListener listener = new ResponseListener();
        ErrListener error = new ErrListener(this.context);
        StringRequest stringRequest = new StringRequest(
                Request.Method.GET,
                url,
                listener,
                error
        );
        Log.d("ServiceTest", "method_end");

        return "OK";

    }
}

有人可以看到,我正在写日志文件。我看到以下输出:

0 20:01:54.215 3299-3299/com.impyiablue.stoxx D/ServiceTest: method_start
12-10 20:01:54.229 3299-3299/com.impyiablue.stoxx D/test Listener: constructor
12-10 20:01:54.229 3299-3299/com.impyiablue.stoxx D/error Listener: constructor
12-10 20:01:54.238 3299-3299/com.impyiablue.stoxx D/ServiceTest: method_end

但没有别的。当使用listenererror实例时,我看不到日志输出。但他们已被使用!!至少它在我使用内部定义时工作。但现在既没有onResponse也没有onErrorResponse被调用!?那么发生了什么以及如何解决它?

P.S。:也许有人知道如何使context处理更复杂一些?哈...

2 个答案:

答案 0 :(得分:2)

你错过了将stringRequest添加到队列

queue.add(stringRequest);

答案 1 :(得分:1)

  

Android中的Volley不再起作用了??

如果正确实施,它确实有效。

以下是您的代码中的问题。

您只是创建 stringRequest 但不执行它!!甚至没有在 requestQueue 中添加它?

{{1}}

以下是您的简单请求this

这是人们排球实施中更常见的错误。