当我需要创建像 1920*1200 甚至更大的大位图时,我陷入了 OOM 问题。该程序经常崩溃,说 DVM 不允许我分配 9MB 的位图。
但是,如果我在创建位图之前使用 DDMS 附加程序并强制 GC,它可以正常工作。
所以我尝试在解码线程中调用 System.gc() ,甚至强制线程休眠 1s 以等待 gc 发生。然而,它从来没有像我希望的那样发生。Gc 仍在以自己的方式工作。
那么,谁能告诉我如何强制 GC 发生,或者有没有更好的方法来处理这种情况?
更新:我可以看到我可以使用 DDMS 附加到进程,GC 将实时发生。它工作得很好,从来没有OOM。我怎样才能达到这个效果?