私が持っている場合:
Bitmap bitmap = Bitmap.create(..); // instance a
bitmap = Bitmap.create(...); // instance b
bitmap = null;
bitmap = Bitmap.create(...); // instance c
bitmap.recycle();
bitmap = Bitmap.create(...); // instance d
bitmap.recycle();
bitmap = null;
このコードが実行されると、4つのインスタンスのうちどれがまだメモリに残っていますか?.recycle()がネイティブコードにすべてのリソースの割り当てを解除するように指示していることは知っていますが、それがいつ発生するかは保証されていません。
私が尋ねている理由は、次のループを見てみましょう:
Bitmap bitmap = null;
while (true) {
bitmap = Bitmap.create(...);
}
これは最終的にアプリをクラッシュさせる(メモリ不足)と思いますか?もしそうなら、このループはどのように書き直されるべきですか?(ビットマップを使用して、変更された状態をアニメーション化および表示している場合)。