Android JazzyViewPager&x2B;ImageLoading=OutOfMemory
当我使用JazzyViewPager滚动浏览大约70幅图像时,我的记忆错误消失了 爵士寻呼机的某个地方似乎出现了严重的内存泄漏。我看到,即使当我滚动经过这些图像时,它也会紧紧抓住它们。即使在更强大的设备上,我也会在浏览了70幅左右的图片后内存不足 我正在使用通用图像加载器和这个视图寻呼机,所以不确定这是否与它有任何关系Android JazzyViewPager&x2B;ImageLoading=OutOfMemory,android,android-viewpager,out-of-memory,universal-image-loader,Android,Android Viewpager,Out Of Memory,Universal Image Loader,当我使用JazzyViewPager滚动浏览大约70幅图像时,我的记忆错误消失了 爵士寻呼机的某个地方似乎出现了严重的内存泄漏。我看到,即使当我滚动经过这些图像时,它也会紧紧抓住它们。即使在更强大的设备上,我也会在浏览了70幅左右的图片后内存不足 我正在使用通用图像加载器和这个视图寻呼机,所以不确定这是否与它有任何关系 还有其他人有这个问题吗?JazzyViewPage确实存在漏洞 我运行了一个内存分析器,发现JazzyViewPager维护着所有添加视图的映射: private HashMap
还有其他人有这个问题吗?JazzyViewPage确实存在漏洞 我运行了一个内存分析器,发现JazzyViewPager维护着所有添加视图的映射:
private HashMap<Integer, Object> mObjs = new LinkedHashMap<Integer, Object>();
public void setObjectForPosition(Object obj, int position) {
mObjs.put(Integer.valueOf(position), obj);
}
并从我的适配器的destroyItem()
调用它:
我监控了内存使用情况,现在一切正常。非常努力!!谢谢你也解决了我的问题
public void removeObject(int position) {
Object removed = mObjs.remove(position);
if (removed != null) {
LogUtils.LOGD(TAG, "Removed obj at pos " + position);
}
}
@Override
public void destroyItem(ViewGroup container, int position, Object obj) {
container.removeView(((JazzyViewPager)container).findViewFromObject(position));
// make sure to remove the reference from the jazzyviewpager map
((JazzyViewPager)container).removeObject(position);
}