在一些博客中读到Android中的GC发生在主(UI)线程上,这可能会在UI屏幕上产生缓慢,具体取决于GC执行的频率。 因此,我想知道如果我手动释放对象(通过指定空值)这对我来说是没有用的,这将是一个好主意。 这样我们可以避免在应用程序中多次执行GC。
请分享您的想法。 谢谢, SKU
答案 0 :(得分:1)
没有“手动释放对象”这样的东西 - 至少对GC没有任何意义。当您丢失对它的所有引用时,对象不会立即被释放/收集/无论如何;它只是符合条件的收集。 GC实际上是对象的释放,当它感觉就像这样做。
保持GC不那么努力的唯一真正方法是创建更少的对象,特别是临时对象。减少垃圾==少收集。
答案 1 :(得分:0)
释放(解除引用)您没有进一步使用的对象总是一个好主意。您还可以使用SoftReference
,WeakReference
和/或WeakHashMap
来帮助GC提取您不介意的内容,如果系统需要空间的话。
有关Android的GC系统的更多信息here。