2013-05-03 64 views
0

在我的活动我有做drawables需要回收吗?

final ImageView img = (ImageView) findViewById(R.id.myimage); 

img.setImageDrawable(getdrawable()); //getdrawable() is my own function which returns a drawable 

,这一行

img.setImageDrawable(getdrawable()); //this line is 

多次调用,以取代目前的ImageView的绘制。

我是否需要回收或绘制将在GC为我做呢?如果我确实需要回收利用,那我该怎么做?

+0

我将离开这个任务的GC – Blackbelt 2013-05-03 08:16:45

回答

0

绘项目,像其他任何使用内存,得到标记为垃圾回收,只要不再有指向它们的任何引用。如果你正在运行到哪里内存你放下参照以前绘制的不作为即将发布的情况,那么,这对你GarbageCollector。 GC会尽量做到工作在最有效的方式,这意味着,从您的角度来看,它得到它时,它得到它,你不能让它再快一点,即使你调用该对象的Dispose () 方法。

阅读本guide什么与垃圾收集在幕后事情的一个很好的解释。

+0

有一个在Android上长期居住的bug,当垃圾收集器检查内存使用像一个位图的像素缓冲区本地分配不作为分配。它将结束Bitmaps将阻止由低内存触发的GC。这就是为什么我们必须手动回收位图。 (实际上,手动触发GC也有帮助。)至少在ICS之前(或者在JB之前)。 – BlueWanderer 2013-12-06 03:46:52