1920*1200 またはそれ以上の大きなビットマップを作成する必要がある場合、OOM の問題が発生します。DVM では 9MB のビットマップを割り当てられないというメッセージが表示され、プログラムがクラッシュすることがよくあります。
ただし、ビットマップを作成する前に DDMS を使用してプログラムをアタッチし、GC を強制すると、正常に動作します。
そこで、デコード スレッドで System.gc() を呼び出して、gc が発生するのを待つためにスレッドを強制的に 1 秒スリープさせようとしました。しかし、それは私が望んだようには決して起こりません。Gc は今でも独自の方法で機能しています。
それで、誰かがGCを強制的に発生させる方法を教えてもらえますか、またはこのケースに対処するためのより良い方法はありますか?
更新: DDMS を使用してプロセスにアタッチするだけで、GC がリアルタイムで実行されることがわかります。そして、それは非常にうまく機能しており、OOM はこれまでありませんでした。どうすればこの効果を達成できますか?