Android内存泄漏总结

徐二七 2012-08-15

内存溢出(OOM)这是我们经常遇到的问题,引起OOM的原因是我们应用的问题,而不是系统问题,所以我们要在做项目之前就要细细的研究一下,哪些情况下可能引起OOM这样就不至于在项目搞得差不多了,再去找,这样就得不偿失了!

常见的容易引起内存泄漏的不良代码:

1、查询数据库没有关闭游标

// 操作完后关闭游标
Cursor cursor = null;
	try {
	  cursor = getContentResolver().query(uri ...);
	  if (cursor != null && cursor.moveToNext()) {
	  ... ...
	  }
	} finally {
	  if (cursor != null) {
	  try {
	  cursor.close();
	  } catch (Exception e) {
	  //ignore this
	  }
	  }
	}

2、进行流操作时没有关闭流

3、构造Adapter时,没有使用缓存的convertView

4、Bitmap对象不在使用时调用recycle()没有及时释放,尤其是进行大图操作

if(bitmap != null && !bitmap.isRecycled()){   
	    	bitmap.recycle();   
	    	bitmap = null;   
	    	}   
	    	System.gc();  
	    }

5、没有及时释放对象的引用

相关推荐