zoukankan      html  css  js  c++  java
  • 如何使用软引用

    1. 什么是软引用:http://en.wikipedia.org/wiki/Soft_reference
    1. 使用软引用:

    我构造了简单的HashMap来存储SoftReference的对象。

          private HashMap<Integer, SoftReference<Bitmap>> mThumbnailCache = null;//新建软引用缓存。

     

    //创建一个软应用

          private SoftReference<Bitmap> createSoftReference(int albumId) {

               if (null == mCacheManager)

                     return null;

               Bitmap bmpTmp = mCacheManager.getThumbnail(getAlbumPos(albumId));

               if (null == bmpTmp)

                     return null;

                SoftReference<Bitmap> sr = new SoftReference<Bitmap>(bmpTmp);

               bmpTmp = null;//需要置空

               return sr;

          }

     

    //获得软引用缓存中的Bitmap

          public Bitmap getThumbnail(int albumId) {

               if (null == mCacheManager || null == mThumbnailCache)

                     return null;

               if (mThumbnailCache.containsKey(albumId)) {

                     SoftReference<Bitmap> bmpSr = mThumbnailCache.get(albumId);

                     if (null != bmpSr && null != bmpSr.get())

                          return bmpSr.get();

                     mThumbnailCache.remove(albumId);

               }

    //如果GC释放了一个SoftReference,则需要重新创建SoftReference,并且将该SoftReference存到HashMap里。

               SoftReference<Bitmap> sr = createSoftReference(albumId);

               if (null == sr)

                     return null;

               mThumbnailCache.put(albumId, sr);

               return sr.get();

          }

  • 相关阅读:
    [创建型] 原型模式
    深复制和浅复制讨论
    设计模式扫盲
    selenium定位不到元素 yimu
    Jmeter拓展插件可查看和lr一样的图形结果 yimu
    python用字典实现switch..case类似的函数调用 yimu
    pycharm运行Pytest,有没有将Pytest写入Python代码中的区别 yimu
    Jmeter HTTPS接口测试的证书导入 yimu
    杭电acm2203
    杭电acm1259
  • 原文地址:https://www.cnblogs.com/androidwsjisji/p/2231349.html
Copyright © 2011-2022 走看看