zoukankan      html  css  js  c++  java
  • 图片下载缓存防止OOM

    一  ImageManager

        ImageMemoryCache(内存缓存)、ImageFileCache(文件缓存)
        关于Java中对象的软引用(SoftReference),如果一个对象具有软引用,内存空间足够,垃 圾回收器就不会回收它;
        如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来
        实现内存敏感的高速缓存。使用软引用能防止内存泄露,增强程序的健壮性。

    二  LruCache缓存 (android最新的版本中对软引用支持的并不是很好 )     

    LruCache设定的值,系统自动释放内存,这个类是3.1版本中提供的,如果你是在更早的Android版本中开发,则需要导入
    android-support-v4的jar包

    sd卡和内存空间都可缓存。

     

     


    注意-----

    线程池很好的帮我们管理并发和线程数量问题

    /**
    * 获取线程池的方法,因为涉及到并发的问题,我们加上同步锁
    * @return
    */
    public ExecutorService getThreadPool(){
    if(mImageThreadPool == null){
    synchronized(ExecutorService.class){
    if(mImageThreadPool == null){
    //为了下载图片更加的流畅,我们用了2个线程来下载图片
    mImageThreadPool = Executors.newFixedThreadPool(2);
    }
    }
    }

    return mImageThreadPool;

    }

     

     

     

     

     

  • 相关阅读:
    Codeforces Round #592 (Div. 2)C. The Football Season(暴力,循环节)
    Educational Codeforces Round 72 (Rated for Div. 2)D. Coloring Edges(想法)
    扩展KMP
    poj 1699 Best Sequence(dfs)
    KMP(思路分析)
    poj 1950 Dessert(dfs)
    poj 3278 Catch That Cow(BFS)
    素数环(回溯)
    sort与qsort
    poj 1952 buy low buy lower(DP)
  • 原文地址:https://www.cnblogs.com/softwarelanguagebs/p/4716319.html
Copyright © 2011-2022 走看看