回收/释放BitmapShader位图的正确(推荐)方法是什么?
我们应该保留位图的引用,并且一旦不再使用BitmapShader,然后调用bitmap.recycle()?
查看BitmapShader源代码,它清楚地表明该类未对位图执行任何类型的释放,但由于大多数实现都是在本机代码中进行的,因此它保留了避免垃圾回收的引用。
答案 0 :(得分:0)
经过一些研究,我发现位图仍必须回收,因为 BitmapShader 不会对其进行任何释放。
进行的方式是确保 BitmapShader 不再被其他任何类使用。因此,例如,如果 Paint 实例使用了 BitmapShader ,例如 paint.setShader(bitmapShader),则在回收位图之前,删除 paint.setShader(null)之类的着色器引用。
确保未使用 BitmapShader ,并且根本不会再使用它,然后照常回收位图。