对于我正在开发的应用程序,我正在尝试使用大量图像填充 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;
}
}
}
我注意到这实际上并没有释放内存。我不知道是为什么。我错过了什么吗?