Android - 线程BitmapFactory图像解码

时间:2010-10-15 18:56:22

标签: android multithreading image-processing asynchronous

我们的Android应用程序进行了大量的图像解码。我们从互联网,本地存储缓存等中获取大量图像。

到目前为止,这些图像正在UI线程上解码(使用BitmapFactory.decodeX()方法)。它导致了一些超时崩溃,因为UI对用户输入的响应不够快。

我可以编写一个封装解码的AsyncTask,但我不确定这是个好主意。产卵线程很昂贵,而且会产生并撕裂它们。

那么将它放在另一个线程上的最佳方法是什么?我是否需要去编写服务?这看起来有点重量级。那里有没有解决方案呢?

2 个答案:

答案 0 :(得分:2)

AsyncTask保留了一个线程池,因此您不需要花费太多成本来使用AsyncTasks的多个实例。使用AsyncTask或使用带有请求队列的单个线程来解码图像。

答案 1 :(得分:1)

您可以使用IntentService排队下载/解码,只需同时为每张图片调用startService(),它就会一次执行一次。然后您可以使用ResultReceiver

将其传回给您的活动