Android关于Bitmap内存溢出的一点想法


对于任何手机来说,内存管理至关重要,不管是Android还是iphone,在程序中及时回收资源,可以防止内存的溢出.

例如:

  1. for(int i = 0; i < list.size(); i++){  
  2.         Bitmap bitmap = loadImageFromUrl(list.get(i));  
  3.         ImageView imageView = new ImageView(this);  
  4.         imageView.setImageBitmap(bitmap);  
  5.         mImages[i] = imageView;  
  6.     }  
  7.       

这里对于Bitmap就没有很好回收和利用,因为是循环,所以Bitmap就可以放到外部,让程序重复利用,而不需要每次都创建一个新的Bitmap对象,而且如果在内部作好资源回收利用的话,那就不用担心内存溢出了.

改动后的程序:

  1. Bitmap bitmap = null  
  2.     for(int i = 0; i < list.size(); i++){  
  3.         bitmap = loadImageFromUrl(list.get(i));  
  4.         ImageView imageView = new ImageView(this);  
  5.         imageView.setImageBitmap(bitmap);  
  6.         mImages[i] = imageView;  
  7.           
  8.         if(!bitmap.isRecycled() && bitmap != null){  
  9.             bitmap.recycle();  
  10.             bitmap = null;  
  11.         }  
  12.     }  

只是做了小小的改动,但对于程序的内存来说,那可是很好的利用。

 

相关内容