ギャラリーからビットマップをロードして(結果の意図をディスパッチすることにより)、画像を表示するプログラムがあります。次に、画像を表示するアクティビティを終了するときに、 を呼び出しますbm.recycle()
。しかし、それはビットマップをリサイクルしているようには見えませんか? ここの投稿で説明されている問題のために、これを知っています:同じ画像を2回連続で取得した後のアンドロイドビットマップのメモリ不足エラー。
この質問は、具体的には現在のタイトルで述べられているとおりです: onDestroy がビットマップをリサイクルしないのはなぜですか? (気を散らすものとしてではなく、いくつかのコンテキストのリンクを提供するだけです)
ここに私の onDestroy があります:
@Override
protected void onDestroy() {
super.onDestroy();
unbindDrawables(findViewById(android.R.id.content).getRootView());
System.gc();
myImage.recycle();
myImage = null;
}