Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将AsyncTask与ThreadPoolExecutor一起使用_Android_Threadpool_Android Asynctask - Fatal编程技术网

Android 如何将AsyncTask与ThreadPoolExecutor一起使用

Android 如何将AsyncTask与ThreadPoolExecutor一起使用,android,threadpool,android-asynctask,Android,Threadpool,Android Asynctask,我对ThreadPoolExecutor有点困惑。以下是我试图实现的目标: 我有一个列表视图,左侧有一个图像图标,右侧有一个简短的描述。我已经静态地定义了所有文本,但是我想从web上获取图标。我已经知道如何从url获取图像,但是我不想在每个图标上产生“n”个线程来获取图标图像。所以我阅读了threadpoolexecutor for asynctask,我不知道该怎么做。你们能让我先开始吗?我是否必须创建threadpoolexecutor并在其中使用asynctasks 我的清单是这样的。。没

我对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(蜂巢)才可用。