我試圖更清楚地寫一些android代碼(避免課堂上的定義),但我偶然發現了凌亂的問題,例如, here,這似乎不工作!首先,這裏是我的代碼片:在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
但沒有別的。當使用listener
或error
實例時,我看不到日誌輸出。但他們中的一些必須使用!至少在我使用課堂上的定義時它是有效的。但是現在既沒有onResponse
也沒有onErrorResponse
被調用!?那麼發生了什麼以及如何解決它?
P.S .:也許有人有一個想法,如何使context
處理有點複雜?哈......
你還需要start.trigger要求?你只是創建stringRequest但不執行它!甚至沒有將它添加到請求隊列中? – AAnkit
您是否將您的請求添加到抽象RequestQueue? –
哦,我忽略了這荒謬的和毫無意義混亂和愚蠢的隊列中添加的東西!現在它的工作!謝謝!! – Alex