2011-09-15 56 views
0

在某些博客中,读到Android中的GC发生在主(UI)线程中,这可能会在UI屏幕上产生迟滞,具体取决于GC执行的频率。 因此,我想知道如果我手动释放对象(通过分配空值)是否是一个好主意,这对我没有用处。 这样我们可以避免在应用程序中多次执行GC。避免多个垃圾回收执行

请分享您的想法。 谢谢, sku

回答

0

释放(取消引用)对象,你没有进一步的使用总是一个好主意。您还可以使用SoftReference,WeakReference和/或WeakHashMap来帮助GC获取您不介意的东西,如果系统需要空间。

有更多关于Android的气相色谱系统here的信息。

1

没有“手动释放对象”这样的东西 - 至少不以任何方式对GC有意义。一个对象不会立即被释放/收集/当你失去对它的所有引用时;它只是变得合格收集。 GC是实际释放对象的原因,当它觉得这样做的时候它是这样做的。

保持GC工作如此艰难的唯一方法是创建更少的对象,特别是临时对象。少垃圾==少收集。