我有一个列表视图,其中包含一些用户的Facebook好友列表,每行显示好友的姓名和图片。为了从Facebook获取图片,我在Gilles Debunne's post "Multithreading For Performance"之后使用ASyncTask启动了一个线程。
当我向下滚动列表直到结束时,启动的线程数量可能很大,这使得一切都非常慢,直到所有线程完成任务。
如何限制线程数?
由于
于连
答案 0 :(得分:3)
目前,除非您愿意将自己限制在API级别11(Android 3.0)及更高级别,否则您无法限制AsyncTask
使用的线程数。 IIRC,最多可使用20个线程。
如果您想要的数量少于此值,则需要创建自己的线程池机制并使用它而不是AsyncTask
。或者,将代码从AsyncTask
克隆到您自己的项目中,并修改其自己的线程池的特征。
答案 1 :(得分:0)
您可以使用ThreadPoolExecutor来限制用于任务的池中的线程数。