大型建站公司,注册网络公司,网站建设与维护专业,怎么做批量的网站检查图片越来越多,内存溢出已经成了不得不注意的问题了。
错误日志:11-03 12:36:54.812: ERROR/AndroidRuntime(5084): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
内存溢出主要由以下几种情况引起: 1.数据库的cursor没有关闭。
2.构造adapter没…图片越来越多,内存溢出已经成了不得不注意的问题了。
错误日志:11-03 12:36:54.812: ERROR/AndroidRuntime(5084): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
内存溢出主要由以下几种情况引起: 1.数据库的cursor没有关闭。
2.构造adapter没有使用缓存convertview。
3.调用registerReceiver后未调用unregisterReceiver()。
4.未关闭InputStream/OutputStream。
5.Bitmap使用后未调用recycle()。
6.Context泄漏。
前5种情况容易发现和解决,只要把该关的及时关闭,该调用的方法及时调用,就不会有太多问题,另外java里还有软引用帮助管理内存:
SoftReferenceBitmap bitmap; bitmap = new SoftReferenceBitmap(pBitmap); if(bitmap != null){
if(bitmap.get() != null !bitmap.get().isRecycled()){ bitmap.get().recycle(); bitmap = null; } }
下面着重介绍Context泄漏。
这是一个很隐晦的内存泄露的情况。先看一个Android官网提供的例子:
private static Drawable sBackground;@Overrid