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

好的,谢谢你的解释! –

相关问题