SoftReference緩衝圖片
來源:互聯網
上載者:User
Java中的SoftReference即對象的軟引用。如果一個對象具有軟引用,記憶體空間足夠,記憶體回收行程就不會回收它;如果記憶體空間不足了,就會回收這些對象的記憶體。只要記憶體回收行程沒有回收它,該對象就可以被程式使用。軟引用可用來實現記憶體敏感的快取。使用軟引用能防止記憶體泄露,增強程式的健壯性。 SoftReference的特點是它的一個執行個體儲存對一個Java對象的軟引用,該軟引用的存在不妨礙垃圾收集線程對該Java對象的回收。也就是說,一旦SoftReference儲存了對一個Java對象的軟引用後,在垃圾線程對這個Java對象回收前,SoftReference類所提供的get()方法返回Java對象的強引用。另外,一旦垃圾線程回收該Java對象之後,get()方法將返回null用Map集合緩衝軟引用的Bitmap對象Map<String, SoftReference<Bitmap>> imageCache = new new HashMap<String, SoftReference<Bitmap>>();//強引用的Bitmap對象Bitmap bitmap = BitmapFactory.decodeStream(InputStream);//軟引用的Bitmap對象SoftReference<Bitmap> bitmapcache = new SoftReference<Bitmap>(bitmap);//添加該對象到Map中使其緩衝imageCache.put("1",softRbitmap);...//從緩衝中取軟引用的Bitmap對象SoftReference<Bitmap> bitmapcache_ = imageCache.get("1");//取出Bitmap對象,如果由於記憶體不足Bitmap被回收,將取得空Bitmap bitmap_ = bitmapcache_.get();如果程式中需要從網上載入大量的圖片 這時就考慮採用在sdcard上建立臨時檔案夾緩衝這些圖片了