我需要從服務器下載一些位圖到android中。我想用一個使用.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR)
執行的AsyncTask。但我的執行者正在變得不知所措。所以我認爲,如果我拖延,這應該有所幫助。所以我的問題是:我如何延遲執行者?我正在考慮使用handler.postDelay
,但只接受runnables。有沒有辦法讓它與執行者一起工作?從服務器下載許多圖像到Android
一個很好的解決方案可能是一次運行20個調用,然後等待100毫秒來運行下一個20.有沒有人知道在android上執行該操作的方法?
@pete
我每次調用一個線程。我不確定一個線程中的多個調用是否會導致問題。
@Override
protected Bitmap doInBackground(Void... params) {
try {
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
return BitmapFactory.decodeStream(is);
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
您對從您檢索的圖像創建的位圖做了什麼?如果不將它們寫入文件並調用Bitmap.recycle(),則可能會耗盡內存。 –
您是否考慮過爲每個圖像使用IntentService?如果沒有看到我的答案:http://stackoverflow.com/questions/19291462/android-download-multiple-files-one-after-another-and-show-progress-in-listview/19292348#19292348 – cYrixmorten