我正在尝试在我的应用程序中加载已保存的游戏。问题是,我不断遇到以下问题:
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...
我想我知道为什么了。当前游戏(我想删除并忘记)仍然保留着内存。我想“解锁”此内存,那么有什么方法可以进行“堆转储”(使用引号是因为我是菜鸟,可能使用了错误的技术术语)?
最佳答案
一旦您消除了对当前游戏数据的所有引用(通过将所有相关变量、哈希条目等设置为 null
),您可以调用 System.gc()
(或 Runtime.getRuntime().gc()
)向 JVM 建议这是垃圾收集的好时机。但是请注意,您不能以这种方式强制进行垃圾回收。
关于java - 需要 Android 堆按摩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6190184/