【问题标题】:Do we have to explicitly recycle the bitmap if we don't need it?如果我们不需要它,我们是否必须显式回收位图?
【发布时间】:2012-09-14 00:31:53
【问题描述】:

Bitmap 有一个recycle 方法,但如果我们不再需要它,是否必须显式调用它?

例如,ImageView 现在有一个位图。当用户单击一个按钮时,它将为 ImageView 设置一个新的位图。

在分配新的位图之前我们必须回收原始位图吗?

【问题讨论】:

    标签: android bitmap recycle


    【解决方案1】:

    是的,如果您的目标设备是 Android 较旧的 3.0。这样可以避免您在OutOfMemoryException 中遇到问题。

    注意:在android 3 之前,位图内存是在本机堆中分配的。从 GC 的角度来看,java 对象将保留低内存。

    【讨论】:

    • 我不相信这完全正确,这取决于您首先如何将位图绑定到图像视图,以及该位图的开始大小,我不会去打电话recycle() 只是因为它的 pre android 3.0
    • 当然这取决于它的大小。但是不要 recycle() 这意味着本机内存泄漏。当您忘记在 new (c++) 之后调用 delete 时就是这样。
    • 好吧,GC 最终会清理掉,所以它不完全是内存泄漏,因为内存是由 GC 回收的,这只是 GC 没有足够快地释放关键位图内存的问题,但是在通常情况下,例如到目前为止,列表中的绑定图标证明对我来说没问题,我唯一遇到位图预算问题的是快速交换大图像
    猜你喜欢
    • 1970-01-01
    • 2021-02-22
    • 2019-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    相关资源
    最近更新 更多