事情是这样的我想做一个多任务可以同时下载的功能,类似于迅雷那种于是我想每当点击一个下载链接的时候,就会new HandlerThread(名字递加)然后获取这个handlerthread的looper然后在new一个我封装好的MyHandler类里,将looper作为参数传进去,最后将这个myhandler的对象 ADD 到 我在初始化前就new出来的HandlerThreadList<MyHandler>列表中方便我统一管理,刷新数据等操作。就这样出了很让我迷糊的问题;在1~2个任务同时下载的情况,你可以随意的对任何下载任务暂停或继续,下载很正常,文件完整下载当大于或等于3个任务的时候,问题就来了。1. 我先随意打开两个下载,然后将这两个下载线程先暂停,也就是通过HandlerThreadList<MyHandler>取得这个handler对象,然后通过布尔值变量让while循环停止,这没问题,handlermessage里的while循环确实停下来了,当我把两个下载任务全都停止时,这时候我在添加一个下载链接,就这时候,网页进度条就不动了,经过我log打印后发现,我点第三个下载链接时是卡在new HandlerThread声明这里,没有继续往下走卡主不动了,这个问题我不知道是为什么出现的。2.同样这个也是同时下载3个以上,但这次我点开2个下载链接时不去暂停它,直接添加第三个链接,就可以正常添加,也就是更说明第一个问题是因为我暂停了另外两个任务而导致,任务无法添加,可每一个handlerthread,handler对象都是对每个任务来说新声明的,应该是互不影响才对。3.作2操作后,这时候列表有3个任务,我随意暂停两个,第三个任务就不走了,怎么试验都一样,就是不动了,但随意在开启一个,也就是说同时开启2个,那么这两个才会正常走,只开启一个的时候,刚开启sendmessage进去,会进入while循环下载1~2秒,然后直接就没了,我在while循环外和里面都加了打印,发现循环里是打印了,可是while外没打印,也就是说根本没走完handlermessage这个方法就莫名其妙的消失了,OK,因为停止了,我只好在点回暂停,在继续,这次更NB,连反应都没有,连handlermessage都没有进去。这个问题弄了2天了,实在找不到问题所在,希望各位同行们,有任何猜测想法都能告诉我,谢谢大家的帮忙!