2014-09-01 44 views
1

在android中,我使用hashmaps和sparsearrays和sparseintarrays。在我使用它们的函数中,有时候是临时对象。在函数结束之前,清除地图数据是否是一个好习惯?功能在android中结束时清除映射是否值得?

感谢

+0

它们的范围仅限于该方法的对象吗? – 2014-09-01 20:09:08

+0

是的,他们仅限于方法 – omega 2014-09-01 20:09:31

+4

然后,不,完成任何事情。 – Keppil 2014-09-01 20:09:55

回答

4

在Android中,我利用包含HashMap和sparsearrays和sparseintarrays的。在我使用它们的函数中,有时候是临时对象。在函数结束之前,清除地图数据是否是一个好习惯?

不,完成任何事情。

我想,如果你清除它,那么你马上回到内存而不是等待垃圾收集。那么这不会使它工作吗?

清除集合只会删除对集合中项目的引用,所以您仍然必须等待垃圾回收才能恢复内存。

2

这是不必要的。由于hashmap对于函数是本地的,所以hashmap将被垃圾收集器收集,并且如果它是空的,它没有区别。如果没有其他参考,hashmap的内容也将被收集。它不会以更快的速度在地图中收集。

因此清理它只是浪费时间。

如果你担心内存,它肯定是一些非常大的对象。如果说是Bitmap,则可以拨打bmp.recycle()来帮助垃圾收集。