我想知道这两者中哪一个更适合从 Web 加载 ListView 中的图像,是通过同时运行的一些线程批量加载还是通过线程队列逐个加载图像?
我从 youtube 应用程序注意到(但我不知道这是否真的实现)图像是批量加载的,而且速度有点快。甚至不仅要加载图像,还要从网络上请求一些数据。有人有想法吗?
最佳答案
以何种方式“更好”?性能明智?对开发者友好?可用性明智?
需要考虑的几个基本事项:
- 创建线程的成本很高。它很慢,每个线程都消耗系统资源(当然)。为每次下载创建单个线程时,使用托管的上限线程池。
- 不要加载用户看不到的图片。你应该做的是在你的
ListAdapter
的getView()
中,检查图像是否已经加载,如果没有,重新使用线程池中的线程来做工作。 - 小心使用 AsyncTask。据我所知,AsyncTask 管理一个固定的、应用程序范围的线程池(我认为它的上限为 5 个线程),因此如果所有这些线程都忙于加载图像,您通过该类执行的任何其他任务都将被阻止。
- 不要重新发明轮子。 ImageLoader的 Droid-Fu解决你的问题?它还实现了缓存,因此图像不会被下载两次。
关于android - 哪个更好地为 ListView 加载图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2092190/