BitmapFactory.decodeByteArray应该在后台线程吗?

时间:2015-04-27 06:45:46

标签: android performance

在UI线程上调用BitmapFactory.decodeByteArray()是否明智,还是应该总是在后台任务中执行?

4 个答案:

答案 0 :(得分:2)

对于大图像,绝对。您可以在主线程上使用它来获取一两个小图像,但如果您在太大的图像或太多的小图像上使用它,肯定会导致性能问题。

答案 1 :(得分:1)

http://developer.android.com/training/displaying-bitmaps/index.html

http://developer.android.com/training/displaying-bitmaps/process-bitmap.html

http://android-developers.blogspot.in/2009/05/painless-threading.html

使用后台线程(Asynch Task等)进行位图操作的优势之一,我们可以摆脱ANR(一个应用程序N ot R esponding。)从URL下载位图时可能出错了。让你跟随无痛在处理长时间运行的任务时,为应用程序构建线程http://android-developers.blogspot.in/2009/05/painless-threading.html

答案 2 :(得分:0)

在所有情况下,我的回答都是肯定的。您永远不会知道代码将运行的设备。在低端设备上,即使解码小图像也会导致丑陋的用户体验 - 阻塞主线程。解码方法非常优化 - 它们是编写并运行Native ...但是这不会将您保存在低端设备或大图像上,或者如果您有一个包含许多项目的列表。

答案 3 :(得分:0)

如果你有很多大图像,你需要在一个线程上处理它。 例如:listview将显示每个项目的大量图像, 只有一个图像,我认为你没有,因为一个线程需要CPU和RAM