网络上有很多解决的办法,但是都是在清理磁盘缓存和内存上做,并不能及时释放内存。

1.可以在每次请求数据和加载数据后调用

/** * 清除内存缓存. */public static void clearMemoryCache(Context context){    // This method must be called on the main thread.    System.gc();   // Glide.get(context).clearMemory();    GlideApp.get(context).clearMemory();}

/** * 清除磁盘缓存.必须在子线程里做 */public static void clearDiskCache(Context context){    System.gc();    new AsyncTask<Void,Void,Void>(){        @Override protected Void doInBackground(Void... params) {            // This method must be called on a background thread.            GlideApp.get(context).clearMemory();           // Glide.get(context).clearDiskCache(); return null; }    };}2.可以设置磁盘缓存的大小
@GlideModulepublic final class MyGlideModule extends AppGlideModule {    /** * MemorySizeCalculator类通过考虑设备给定的可用内存和屏幕大小想出合理的默认大小. * 通过LruResourceCache进行缓存。 * @param context * @param builder */    @Override    public void applyOptions(Context context, GlideBuilder builder) {        /*MemorySizeCalculator calculator = new MemorySizeCalculator.Builder(context) .setMemoryCacheScreens(2) .build();        builder.setMemoryCache(new LruResourceCache(calculator.getMemoryCacheSize()));*/        int diskCacheSizeBytes = 1024 * 1024 * 500; // 100 MB         builder.setDiskCache(new InternalCacheDiskCacheFactory(context, diskCacheSizeBytes));

    }

    @Override    public boolean isManifestParsingEnabled() {        return false;    }

}3.以下是尽量减少图片资源的大小
GlideApp.with(context).asDrawable().load(url)).skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.ALL).apply(MyUtils.gildeOptions()).into(imageView);(1)相对而言,asDrawable()比asBitmap要省(具体相关可以去百度)(2).skipMemoryCache(true)跳过内存缓存。(3).diskCacheStrategy(DiskCacheStrategy.ALL)全部使用磁盘缓存(4)裁剪图片大小.override(200,200);下面是具体使用方法
public static RequestOptions gildeOptions(){    RequestOptions options = new RequestOptions();    options.fitCenter() .placeholder(R.drawable.default_head) .error(R.drawable.default_head) .fallback(R.drawable.default_head).override(200,200);    return options;}

以上是网络上学习的方法,但是还是会出现OOM,下面是我自己处理的,效果很明显,希望能帮到大家。

在Recyclerview中重写这个方法,当item被隐藏的时候,调用 Glide.with(fragment).clear(imageView);
@Overridepublic void onViewRecycled(@NonNull ViewHolder holder) {    super.onViewRecycled(holder);    ImageView imageView=holder.imageView;    if (imageView!=null){        Glide.with(context).clear(imageView);    }}


转载于:https://www.cnblogs.com/qiuqiuQaQ/p/9375907.html

在Recyclerview使用GlideAPP加载大量图片导致内存溢出(oom)相关推荐

  1. 图片--Android加载图片导致内存溢出(Out of Memory异常)

    Android在加载大背景图或者大量图片时,经常导致内存溢出(Out of Memory  Error),本文根据我处理这些问题的经历及其它开发者的经验,整理解决方案如下(部分代码及文字出处无法考证) ...

  2. Android加载图片导致内存溢出(Out of Memory异常)

    Android在加载大背景图或者大量图片时,经常导致内存溢出(Out of Memory  Error),本文根据我处理这些问题的经历及其它开发者的经验,整理解决方案如下(部分代码及文字出处无法考证) ...

  3. Android手机内存图片读取,有效解决Android加载大图片内存溢出的问题

    今天在交流群里,有人问我他经常遇到加载图片时内存溢出的问题,遇到的情况还是在自己的测试机或者手机里没有问题,做好了, 到了客户手机里就内存溢出了.其实有时候不同的手机和不同的系统对内存的要求不一样,尤 ...

  4. 上传图片重新调整大小导致内存溢出oom

    目录 压测上传人员图片接口 一.了解案发现场情况: 二.分析原因 三.导出oom分析 1. System 时间大于 User 时间 old区回收情况 四.解决方案 五.后续 最近准备优化之前老代码的 ...

  5. Linux内存申请失败失败会怎样,linux - 转储失败,因为无法加载资产 - 堆栈内存溢出...

    我想在我的.bashrc Ubuntu 18.04上创建别名以构建和安装APK,但是在这样的终端中遇到问题 W/asset (22684): Asset path ./app/build/output ...

  6. 加载大量图片内存暴增导致闪退 Terminated due to memory issue(内存暴增SDWebImage加载高清大图崩溃)

    上传图片一定要压缩,一定要压缩,一定要压缩.(目前手机拍摄的图片一张几M,上传后不压缩,如果几十张一块加载展示时内存画面有点美!如果是后台上传除了需要高清以外的图也需要压缩处理) 下载大量图片时一定要 ...

  7. ug提示找不到html文件,[图文教程] 以下文件无法加载,导致打开操作失败: 使用当前搜索选项找不到文件,部件已卸载...

    UG打开装配文件时提示:以下文件无法加载,导致打开操作失败: 使用当前搜索选项找不到文件,部件已卸载. 如下图所示: 这个问题,看到很多UG初学者有时就会问到这个问题,很简单的一个问题,但是有时有必要 ...

  8. php 页面加载图片卡,javascript,图片_js动态加载image导致浏览器很卡,javascript,图片 - phpStudy...

    js动态加载image导致浏览器很卡 function addImage(logo,userid,name,style){ console.log("addImage"); var ...

  9. 使用mavon-editor文本老是出现css加载失败导致没有样式怎么办

    使用mavon-editor文本老是出现css加载失败导致没有样式怎么办 背景:最近自己在pc端和手机端测试本博客的时候,老是出现样式加载失败,导致页面很难看,强迫症的我就去想办法解决这个问题 如下情 ...

最新文章

  1. 并查集hdu1232
  2. 给 C# 代码动态着色的 JavaScript 脚本
  3. AAAI 2022 | 可解释和鲁棒的联合文本分类及证据提取
  4. 结构体的赋值和初始化与取出结构体变量中的成员
  5. 前端中实时显示当前时间的js代码
  6. git实战中遇到git@github.com: Permission denied (publickey).的问题
  7. 视觉SLAM——稀疏光流法
  8. 电商平台需要怎样的推荐系统?
  9. centen os7 源码安装git2.17.0
  10. 老板口中的一区二区是什么意思?
  11. [AI教程]最全人工智能图谱解析和视频下载
  12. android小米开源代码
  13. 2021年如何有效地准备PMP考试?
  14. [Hulu] 数组最大价值
  15. 如何做好PPT——画图篇
  16. php 亚马逊关键字排名,亚马逊提升关键词排名的方法
  17. Kali Linux 使用Armitage
  18. 外贸群发软件用什么好?
  19. 3d效果图全景难制作吗?制作3d全景图的目的是什么
  20. 高新技术企业认定对企业有什么弊端?

热门文章

  1. html怎么定位到不同的页面,html页面定位到指定位置的4种实现方式
  2. javascript手册安卓版_JavaScript 完全手册(2018版)
  3. java中List分片方法
  4. Apache Dubbo是一款高性能Java RPC框架。
  5. 蠕虫mysql_mysql蠕虫复制基础知识点
  6. 多维数组做参数,内存可以看做是线性的
  7. Android控制文字水平间距android:letterSpacing
  8. javascript算法汇总(持续更新中)
  9. https://akaedu.github.io/book/ch32s02.html
  10. 获取当前的系统环境(python)