需要Android堆按摩

时间:2011-05-31 15:49:56

标签: java android memory heap

我正在尝试在我的应用中加载已保存的游戏。问题是,我一直遇到以下问题:

 06-01 00:42:36.123: ERROR/dalvikvm-heap(10297): Heap Massage needed (5107596-byte    
   external allocation too big)

 06-01 00:42:36.123: ERROR/dalvikvm-heap(10297): -->Full GC (don't collect 
       SoftReferences)

 06-01 00:42:36.163: ERROR/dalvikvm-heap(10297): -->Heap Massage was successful...

我想我知道为什么。当前的游戏(我想被删除和遗忘)仍然保留记忆。我想“解锁”这个内存,所以有什么方法可以做“堆转储”(引用用作我是菜鸟,可能使用了错误的技术词)?

1 个答案:

答案 0 :(得分:2)

一旦消除了对当前游戏数据的所有引用(通过将所有相关变量,哈希条目等设置为null),您就可以调用System.gc()(或Runtime.getRuntime().gc())向JVM建议这将是垃圾收集的好时机。但请注意,您不能以这种方式强制垃圾收集。