正如標題所說,我對loopj的AsyncHttpClient存在一個奇怪的問題。調用大量的Android loopj AsyncHttpClient HEAD請求,只是其中的一個隨機數正在執行
MyObject是一個包含鏈接和值的類,lista是包含50個MyObject對象的List。
我需要從50個鏈接檢索頭信息,所以我做了一個循環是這樣的:
private static AsyncHttpClient client;
public MyClass(){
client = new AsyncHttpClient();
client.setURLEncodingEnabled(true);
}
....
public void foo(List<MyObject> lista){
for (final MyObject c : lista) {
client.head(c.getLink(), new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, org.apache.http.Header[] headers, byte[] responseBody) {
Log.d("DBG", "retrieving informations");
int contentlength = Integer.parseInt(headers[3].getValue());
c.setValue(contentLength);
Log.d("DBG", "retrivied");
setView(lista);
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
Log.d("DBG", "retrieving informations failed");
Log.d("DBG", error.toString());
}
});
}
}
在這一點上,如果我嘗試執行的是應用程序,看看目錄下載,我可以看到在50個請求中只有大約20或30個被執行,而其他的則沒有給出任何反饋(即沒有超時異常,沒有「檢索信息」調試消息或任何其他類型的消息)。
如果我嘗試再次執行該應用程序,將會執行大約7或8個請求。
如果我嘗試在代碼中進行任何更改(例如添加註釋),然後再次運行它,它甚至無法安裝上,出現以下錯誤模擬器:
[2014-03-05 02:46:28 - Myapp] Failed to install MyApp.apk on device 'emulator-5554!
[2014-03-05 02:46:28 - MyApp] (null)
[2014-03-05 02:46:28 - MyApp] Launch canceled!
如此說來去除前面提到的一段代碼其他一切正常,我希望有人能幫我解決它。
任何幫助將被認可。 真的很感謝你提前!