Android 如何将AsyncTask与ThreadPoolExecutor一起使用
我对ThreadPoolExecutor有点困惑。以下是我试图实现的目标: 我有一个列表视图,左侧有一个图像图标,右侧有一个简短的描述。我已经静态地定义了所有文本,但是我想从web上获取图标。我已经知道如何从url获取图像,但是我不想在每个图标上产生“n”个线程来获取图标图像。所以我阅读了threadpoolexecutor for asynctask,我不知道该怎么做。你们能让我先开始吗?我是否必须创建threadpoolexecutor并在其中使用asynctasks 我的清单是这样的。。没有图标Android 如何将AsyncTask与ThreadPoolExecutor一起使用,android,threadpool,android-asynctask,Android,Threadpool,Android Asynctask,我对ThreadPoolExecutor有点困惑。以下是我试图实现的目标: 我有一个列表视图,左侧有一个图像图标,右侧有一个简短的描述。我已经静态地定义了所有文本,但是我想从web上获取图标。我已经知道如何从url获取图像,但是我不想在每个图标上产生“n”个线程来获取图标图像。所以我阅读了threadpoolexecutor for asynctask,我不知道该怎么做。你们能让我先开始吗?我是否必须创建threadpoolexecutor并在其中使用asynctasks 我的清单是这样的。。没
___________________________
[icon][a short description]
____________________________
[icon][a short description]
_____________________________
[icon][a short description]
_____________________________
[icon][a short description]
____________________________
您将需要使用方法来启动您自己的执行器 似乎有很多陷阱,因此请仔细阅读
AsyncTask
的整个页面
因此,是的,您可以创建自己的
ThreadPoolExecutor
,并将其与AsyncTask
一起使用。我建议您只使用AsyncTask,而不必担心ThreadPoolExecutor
,因为它无论如何都需要蜂巢。AsyncTask有一个线程池,可对所有列表项重用。它不会为每个图标创建一堆线程
请记住,您的任务将在Android 2.x上并行运行,并跟踪您的代码可能存在的任何同步问题。谢谢,我将进一步研究它!看起来使用起来很烦人。。但是,对于低于11的API级别,这是不可用的。当我在异步任务中执行Log.d(标记“Created”)时,它显示创建了“n”个线程。因此,您的意思是,即使创建了异步,异步也有一种内部方式来控制其线程池?您需要为您拥有的每个任务创建一个新的AsyncTask实例并执行它。您不应该重用这些实例。AsyncTask管理一个线程池,所有任务共享该线程池。@StevePrentice根据文档从API级别1开始提供。我觉得这是最好的解决方案。@Dheeraj,AsyncTask直到api级别3才可用,AsyncTask.exexcuteOnExecutor直到api级别11(蜂巢)才可用。