2013-05-03 58 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