オブジェクトを作成して変数に代入すると:
Obj obj1 = null;
obj1 = myFunction(params);
(ここでmyFunction
は複雑なオブジェクトを作成します)
その後、変数を再割り当てします。
obj1 = myFunction(otherparams);
以前のオブジェクトを破棄していないため、その瞬間にメモリ リークが発生しますか?
実際の状況は次のとおりです。
Bitmap bmp;
bmp = drawMyBitmap(3);
//... some code
bmp = drawMyBitmap(4);
ここでメモリリークが発生しますか?
もちろん、 を呼び出さなければならないことはわかってbmp.recycle
いますが、実行できません。実際のコードは次のとおりです。
Bitmap bmp;
bmp = drawMyBitmap(3);
imageView.setImageBitmap(bmp);
//... some code
// if I try to do recycle here - I receive java.lang.IllegalArgumentException: Cannot draw recycled bitmaps
// But I need to recreate bitmap every some minutes
bmp = drawMyBitmap(4);
imageView.setImageBitmap(bmp);
では、ビットマップをリサイクルしてメモリ リークを回避するにはどうすればよいでしょうか。