论坛首页 移动开发技术论坛

又优化了一下 Android ListView 异步加载图片

浏览 88102 次
精华帖 (0) :: 良好帖 (3) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-05-08  
线程数量比较大的时候用AsyncTask靠谱些,AsyncTask封装了线程池的。
Cindy_Lee 写道
xici_magic 写道
ListView异步加载还是用AsyncTask实现靠谱些
直接new Thread线程开销会很大

在这里用Thread是因为Thread更好做wait操作,异常也可以捕获到,AsyncTask我没尝试过,还有Thread比AsyncTask开销大这个结论是怎么得到的,还望告知

0 请登录后投票
   发表时间:2012-05-12  
xici_magic 写道
ListView异步加载还是用AsyncTask实现靠谱些
直接new Thread线程开销会很大

AsyncTask的使用是有限制的,有时候并不能满足需求。
请看如下说法:
[size=xx-small]But in practice, you will notice that the AsyncTask is limited to 10 threads. This number is hardcoded somewhere in the Android SDK so we cannot change this. In this case it's a limitation we cannot live with, because often more than 10 images are loaded at the same time. [/size]
0 请登录后投票
   发表时间:2012-05-13  
vanner007 写道
xici_magic 写道
ListView异步加载还是用AsyncTask实现靠谱些
直接new Thread线程开销会很大

AsyncTask的使用是有限制的,有时候并不能满足需求。
请看如下说法:
[size=xx-small]But in practice, you will notice that the AsyncTask is limited to 10 threads. This number is hardcoded somewhere in the Android SDK so we cannot change this. In this case it's a limitation we cannot live with, because often more than 10 images are loaded at the same time. [/size]

AsyncTask的确是有限制的,我之前也做过类似的这个应用,并且跟了下 AsyncTask他是开了个线程池,默认里面有3条线程,不过用在客户端应该是绰绰有余了,
0 请登录后投票
   发表时间:2012-05-24  
AsyncTask有加入线程池技术  所以在现成很多的时候 new Thread和AsynTask的优劣就体现出来了
0 请登录后投票
   发表时间:2012-08-08  
感谢楼主分享。
0 请登录后投票
   发表时间:2012-09-25  
如果 url 地址为空,不显示图片有什么好的解决方案,getView,bindView 里面处理当前加载的数据图片是对的,但是会把以前的列表行的图片隐藏

有遇到类似的问题的吗?
0 请登录后投票
   发表时间:2012-09-26  
mytobe 写道
如果 url 地址为空,不显示图片有什么好的解决方案,getView,bindView 里面处理当前加载的数据图片是对的,但是会把以前的列表行的图片隐藏

有遇到类似的问题的吗?

在onImageLoad里面判断drawable是否为空,如果为空则不做任何操作。
0 请登录后投票
   发表时间:2012-10-18  
说的很有道理,很受用。谢谢分享!
0 请登录后投票
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics