0

我有一個網址列表。每個網址都包含一個不同的Facebook用戶個人資料圖片。下載用戶個人資料圖片來自Facebook:AsyncTask或HandlerThread

我想下載這些圖片和UI線程(在屏幕上)上顯示它們。

我用新的AsyncTask每個圖像並且圖像被逐個顯示。

doInBackground(後臺線程)返回位圖:

InputStream in = new java.net.URL(imgUrl).openStream(); 
Bitmap bm = BitmapFactory.decodeStream(in); 

onPostExecute(UI線程)將設置圖像位圖我的會員

  1. 是否下載正確的方法照片或我需要使用處理程序?當用戶想在UI上作出變化,而處理程序用於由消息的任何2個線程之間的通信被選擇
  2. 的AsyncTask。有什麼特別的區別嗎?因爲我似乎可以使用這兩種態度。
+1

你爲什麼不使用萬用圖像裝載機(https://github.com/nostra13/Android-Universal-Image-Loader/blob/master/README.md)或其他社區支持像畢加索庫? – Thecave3

+0

我沒有讀到它,但是有人在計算器建議的AsyncTask給用戶,它看起來就像是正確的做法,所以我想知道正確的態度 –

+2

@Rohan巴蒂亞指出之間的差異的差異,但我會建議在圖像的情況下也可以使用社區庫,因爲它們更容易實現,事實上,它們基於AsyncTask。 – Thecave3

回答

4

異步任務通常是在UI線程上工作的最簡單的方法,但它並不總是最好的。

我的經驗法則是:

如果你正在做的事情隔離與UI,例如下載數據呈現在列表中,繼續使用的AsyncTask。

如果你是做多重複的任務,例如下載這是在下載顯示在ImageViews(如下載縮略圖)多張圖像,使用任務隊列處理程序。

編輯:

正如@ Thecave3指出,最好是讓圖像加載庫爲你做的負荷。 PicassoGlide是合適的選擇。他們甚至提供下載和錯誤佔位符作爲可選功能。

+0

好的,謝謝你的解釋! –

相關問題