我正在向片段动态添加 20 张图像。这里的问题是当我销毁片段并重新加载时,内存在销毁时没有删除,并为再次添加 20 张图像的新内存。
我的代码是:
for(int i=0;i<machImagesCursor.getCount();i++)
{
machImagesCursor.moveToPosition(i);
ImageView imageView=new ImageView(getActivity());
imageView.setId(i);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
100, 75);
imageView.setLayoutParams(layoutParams);
String imageName=machImagesCursor.getString(machImagesCursor.getColumnIndex("M_ImageName"));
String path = Environment.getExternalStorageDirectory().getPath()
+ "/fleetsyncimages/" +imageName ;
Log.d("image-path",path);
imageView.setImageURI(Uri.parse(path));
hScrollView.addView(imageView);
}
在 onDestroy
for(int i=0;i<hScrollView.getChildCount();i++)
{
ImageView iv=(ImageView)hScrollView.getChildAt(0);
// iv.setImageBitmap(null);
Drawable d = iv.getDrawable();
((BitmapDrawable) d).getBitmap().recycle();
}
在我的 logcat 中: 堆不断增加。
提前致谢。