簡體   English   中英

android中的Volley不再起作用…?

[英]Volley in android does not work anymore…?

我試圖更加清晰地編寫一些android代碼(避免使用類內定義),但是我偶然發現了例如在此描述的凌空問題,這似乎不起作用! 首先,這是我的代碼段:

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實例時,我看不到日志輸出。 但其中之一必須使用! 至少當我使用類內定義時,它可以正常工作。 但是現在onResponseonErrorResponse都沒有被調用! 那么怎么回事以及如何解決呢?

PS:也許有人對如何使context處理更加復雜有一個想法? 哈...

您錯過了將stringRequest添加到隊列中

queue.add(stringRequest);

android中的Volley不再起作用…?

如果實施正確,它確實可以工作。

這是您的代碼中的問題。

您只是在創建stringRequest而不執行它! 甚至沒有將其添加到requestQueue中

RequestQueue queue = Volley.newRequestQueue(this/*ActivityContext*/);
queue.add(stringRequest); // you need something like this.

這是為您提供的簡單請求教程鏈接

在齊射實施人員中,這是更常見的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM