我有一些内存泄漏问题,我找不到解决的方法。在stackoverflow中有很多问题,但是没有一个对我有用。
我有一个具有视图页和操作栏选项卡导航的活动。在每个片段中,我只加载一个图像,所以这最终是一个画廊。很好。
在一些片段更改后,我得到了这个错误:
E/AndroidRuntime (19271): java.lang.OutOfMemoryErrorE/AndroidRuntime(19271): at android.graphics.Bitmap。nativeCreate(本地方法)
我读到的都是关于释放图像的需要,所以我想到了:
- fragment lost focus事件
- 删除焦点丢失的片段中的所有视图
但是我找不到这样的解决方法。这是正确的方法吗?如果有,你能举个例子吗?或者我完全错了,答案是另一种方法?
这是我如何添加图像片段:
ImageView img = new ImageView(rootView.getContext());
img.setVisibility(1);
img.setImageResource(R.drawable.gallery_image_1);
img.setAdjustViewBounds(true);
img.setTag( "gallery_image_1" );
gallery.addView(img);
提前感谢大家!
迭戈
首先,确保您使用的是FragmentStatePagerAdapter,因为它比FragmentPagerAdapter
更内存友好。
第二,用MAT分析您的应用程序,找出真正导致内存泄漏的原因。这里有一篇很棒的文章,描述了如何在Android环境中使用这个工具。