よろしくお願いいたします。
親アクティビティから起動される子アクティビティ内のonCreate()で下記のsetImgを実行しています。
子アクティビティをfinish()して親アクティビティに戻った時に、
decodeFileした画像がメモリに残っているようで、
読み込むのが大きな画像(ユーザが拡大して見るので非圧縮)だということもあり、
子アクティビティがdestroyされた時点でメモリから解放させたいのですが、
できずに困っています。
他の画像をdecodeFileするときには一応解放しているようなのですが・・。
(特定の画像で発生するという意味ではなく、再び同じロジックで画像を開く際にメモリに上積みされている様子はないということです。)
適切な処置の仕方ご教示いただければ幸いです。
よろしくお願いいたします。
(補足)
・メモリ使用量はAndroid MonitorのMonitorsタブで見ています。
・setImageBitmapをコメントアウトしてもメモリ使用量は増えたままでした。
・bmをメンバ変数にしてSystem.gc()の前にbm.recycle()を足してもメモリ使用量は増えたままでした。
java
1 private void setImg(String path) { 2 BitmapFactory.Options opt = new BitmapFactory.Options(); 3 opt.inPurgeable = true; 4 bm = BitmapFactory.decodeFile(path,opt); 5 if (bm != null) { 6 mImageView.setImageBitmap(bm); 7 } else { 8 finish(); 9 } 10 } 11 12 public void onStop() { 13 super.onStop(); 14 mImageView.setImageDrawable(null); 15 System.gc(); 16 } 17
回答1件
あなたの回答
tips
プレビュー