我已经测试了一些有关如何加快多次下载速度的测试.
这张表显示了每次下载使用一个线程或一个新线程在不同网络上从2到10张图像的下载速度(使用Samsung Galaxy S1)有多快.
Multithread SingleThread
Images Wifi 3g Wifi 3g
2 1,1 6,6 2,0 6,7
4 1,7 8,0 5,2 9,6
6 2,1 6,1 7,5 15,5
8 2,3 7,1 10,2 20,0
10 2,3 12,5 13,5 26,7
这些结果表明,多线程下载可以大大加快任务的执行速度.
然后,我尝试了相同的代码,但使用HTC Wildfire,当线程下载数量很高时,UI线程的运行流畅性大大降低.
我添加了代码以低优先级启动每个线程:
Thread t= new Thread{
public void run(){
download(image[i]);
}
t.setPriority(Thread.MIN_PRIORITY)
t.start
但是问题仍然存在.有没有一种方法可以使这些线程不会对UI线程产生太大影响?如果不是,我如何检测并调整运行该应用程序的设备的线程数?
谢谢
注意:这十张图片的大小不同,因此无法按列读取表格