私が開発しているアプリの場合、GridView に多くの画像を入力しようとしています。OutOfMemoryExceptions を回避するために、使用可能なメモリの量を確認し、特定のしきい値に達したら、次のようにメモリを解放しようとします。
private void freeUpMemory() {
// Clear ImageViews up to current position
for (int i = 0; i < mCurrentPosition; i++) {
RelativeLayout gridViewElement = (RelativeLayout) mGridView.getChildAt(i);
if (gridViewElement != null) {
ImageView imageView = (ImageView) gridViewElement.findViewById(R.id.image);
imageView.getDrawable().setCallback(null);
imageView = null;
}
}
}
これは実際にはメモリを解放しないことに気付きました。私が知らないのは、その理由です。何か不足していますか?