私はアンドロイド-21でビットマップの方法recycle()
のソースコードをチェックして、私はこれを見た:nativeRecycle()メソッドで "ネイティブピクセルオブジェクト"がまだネイティブレベルで使用されている場合は、
public void recycle() {
if (!mRecycled) {
if (nativeRecycle(mNativeBitmap)) {
// return value indicates whether native pixel object was actually recycled.
// false indicates that it is still in use at the native level and these
// objects should not be collected now. They will be collected later when the
// Bitmap itself is collected.
mBuffer = null;
mNinePatchChunk = null;
}
mRecycled = true;
}
}
私がコメントについて混乱していた偽それはで使用中であることを示し、ネイティブレベル、ネイティブピクセルオブジェクトはまだネイティブレベルで使用されますか?
メソッドnativeRecycle(mNativeBitmap)
がfalseを返す場合、関連するメモリはGCによってのみ収集されるはずですか?最初にrecycle() method
を呼び出すと、mRecycled
がtrueに設定され、再度nativeRecycle(mNativeBitmap)
メソッドに移動することはできません。
したがって、メソッドrecycle()を呼び出すと、ビットマップにシステムがGCにそれを扱う他の参照がまだありますか? mRecycledフィールドはtrueに設定され、nativeRecycle()は決して再び呼び出されないためです。 – zhenganyi
説明が追加されました。 – Toris
追加の説明をいただきありがとうございます。このソースコードスニペットを理解することは役に立ちます。ところで、私はこれらの関連知識をどのように得ることができますか?または、どこで見つけることができますか? – zhenganyi