我需要释放下面的指针,如何释放画布,油漆和矩阵的内存?
Canvas pcanvas = new Canvas();
Paint mPaint = new Paint();
Matrix matrix = new Matrix();
提前致谢。
答案 0 :(得分:5)
Java没有指针,您无法显式释放内存。
但是leak memory in Java and Android可以。如果您的任何对象引用了非托管内存,则需要让他们知道何时可以释放该内存。
因为看起来你正在做与图形相关的工作,我猜你在某处使用Bitmaps并且这些使用大量内存并且需要释放内存。使用完位图后,请务必致电Bitmap.recycle()
。
答案 1 :(得分:1)
在您不再引用您创建的对象后,为其指定空值。这显然不会立即释放内存但是int这样你告诉GC该对象有资格进行垃圾收集..(有效的java)。
编辑:正如@spatulamania所说,如果你正在管理位图,你必须调用循环(它调用c / c ++ free我认为)方法,以释放与之相关的内存。设置为null位图引用是没有用的,因为位图是本机实现的,java对象是几个字节。