Glide加载内存暴增,大佬们支个招

叫我阿喵 2017-09-15 08:49:50
最近做项目,使用Glide图片加载框架
因为是做一些短视频的种类比较多
大概的结构是
MainActivity中有三个Fragment,其中一个Fragment使用了ViewPager,Viewpager大概有十几个页面
每个页面包含一个RecyclerView,RecyclerView中的Item包含一个MediaPlayer,而MediaPlayer有一个ImageView这个ImageView就是封面图,当我将每个页面的RecyclerView加载出来后,内存暴增,而且一直降不下来


ViewPager使用的是FragmentStatePagerAdapter适配器,每次切换后都会执行onDestroy将其销毁,只保存Fragment的状态,但是Glide加载图片所占用的内存还是无法释放

调用了clearMemory方法也是无法释放内存
...全文
665 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zivids 2018-08-30
  • 打赏
  • 举报
回复
试试这个方法,重写adapter的onViewRecycled方法,当item不可见时清除ImageView

@Override
public void onViewRecycled(@NonNull ViewHolder holder)
{
super.onViewRecycled(holder);
ImageView imageView = (ImageView) holder.coverImageView;
if (imageView != null)
GlideApp.with(context).clear(imageView);
}
  • 打赏
  • 举报
回复
请问解决了么?
叫我阿喵 2017-09-18
  • 打赏
  • 举报
回复
引用 2 楼 gxp1182893781 的回复:
加载的图片一般都会存在缓冲区里,即使activity被销毁了这些资源也不会马上被释放
那怎么做才能释放这些资源呢?
叫我阿喵 2017-09-18
  • 打赏
  • 举报
回复
那怎么做才能释放这些资源呢?
叫我阿喵 2017-09-16
  • 打赏
  • 举报
回复
没有人回答吗?
泥巴城 2017-09-16
  • 打赏
  • 举报
回复
加载的图片一般都会存在缓冲区里,即使activity被销毁了这些资源也不会马上被释放

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧