从网络异步加载数百个小图像的最佳技术

时间:2012-07-24 21:06:45

标签: android multithreading

目前我有一个使用线程的工作解决方案(一个新线程被实例化并为每个图像运行),但我随处读到线程内存昂贵且更好地使用Android中的其他解决方案。但不太确定哪种情况更适合这种情况(AsynchTask,一个线程池,还是......?)。网格是可滚动的,如果我快速滚动,我将同时实例化数百个线程......

有一件事有助于缓存图像,因此线程只是第一次创建并运行。但无论如何,我想优化第一次加载。

2 个答案:

答案 0 :(得分:2)

有很多开源项目,但是做了所有这些:异步加载图像并缓存它们等。一些这样的项目是:https://github.com/thest1/LazyListhttps://github.com/nostra13/Android-Universal-Image-Loader

答案 1 :(得分:1)

我认为一个额外的线程应该足够了......我可能错了,但你会有UI线程来处理UI呈现等等,然后是AsyncTask来加载图像(或线程)。在那里你可以实例化尽可能多的并行donwloads,并在每个加载后你可以向UI线程发送一条消息更新GridList ..

实际上,当您使用其他一些库进行HTTP连接时,它会为每个下载实例化额外的线程(或asynctask)。

我一直在与this one合作,它完美无瑕。