2
以下のコードを使用してビットマップサイズを削減し、メモリを節約します。しかし、私がそれを使うと、消費されたRAMメモリは解放されません。解決策は何ですか?私はメソッドの下でustingの後にSystem.gc()を呼び出しましたが、影響はありません。私は私が言うことについてはよく分からない、しかし、あなたのデバイスに十分なRAMメモリがビットマップを保持している場合は、リサイクルを呼び出すときに、私が思うリサイクル後にビットマップメモリRAMが解放されない
Uri selectedImageUri = data.getData();
imgPath = Util.getRealPathFromURI(MainActivity.this, selectedImageUri);
Bitmap bitmap = BitmapFactory.decodeFile(imgPath);
try {
imgPath = Generals.App_Directory + "/temp/" + SystemClock.currentThreadTimeMillis();
ImageUtil.compress_save(bitmap, imgPath, 50);
bitmap.recycle();
System.gc();
confirmDialog();
} catch (IOException e) {
FileLogException.print(e);
}
大きいビットマップ(ビットマップ入力パラメータ) – pskink
をリサイクルしていないのですが、誰が参照を保持しているのかを確認するのに「MAT」を使ってみましたか? – thepoosh
もう一度、MATを使用してビットマップへの参照を保持している人を見てください。System.gcを呼び出すと実際にgcが発生しません – thepoosh