0

在我的活动中,我有

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 

多次调用以替换当前图像视图上的可绘制对象。

我需要回收drawable还是GC会为我做?如果我确实需要回收,那我该怎么做?

4

1 回答 1

0

可绘制对象,就像其他任何使用内存的东西一样,只要不再有任何指向它们的引用,就会被标记为垃圾回收。如果您遇到的情况是,一旦您放弃对前一个可绘制对象的引用,内存就没有释放,那么,这就是 GarbageCollector 适合您。GC 将尝试以最有效的方式完成其工作,这意味着,从您的角度来看,它会在它到达时到达它,并且您无法让它更快地运行,即使您调用对象的 dispose () 方法。

阅读本指南以获得关于垃圾收集幕后发生的事情的非常好的解释。

于 2013-05-03T09:29:33.293 回答