相关疑难解决方法(0)

是否有可能在java中捕获内存不足?

我正在开发一个需要大量内存的程序,我想在发生内存不足异常时捕获.我听说这是不可能做到的,但是如果在这方面有任何发展,我很好奇.

java exception out-of-memory

52
推荐指数
7
解决办法
8万
查看次数

Bitmap,Bitmap.recycle(),WeakReferences和Garbage Collection

在Android上使用AFAIK时,建议将Bitmap对象引用为WeakReferences以避免内存泄漏.当不再保留位图对象的硬引用时,垃圾收集器将自动收集它.

现在,如果我理解正确,必须始终调用Bitmap.recycle()方法来释放Bitmap.我认为这是因为Bitmap对象具有特殊的内存管理.

那是对的吗?

如果这是真的,当使用WeakReferences时,必须存在内存泄漏,因为在释放WeakReferences时永远不会调用Bitmap.recycle().或者,不知何故,WeakReferences是否足以避免内存泄漏?

谢谢

android garbage-collection memory-leaks weak-references bitmap

24
推荐指数
1
解决办法
2万
查看次数

Android自定义视图位图内存泄漏

我有在我需要绘制两个位图自定义视图,一个是背景,代表了地图的形象,一个是将在画布上/左侧位置绘制的引脚.

这两个图像都是在绘图上绘制的,并且在包含视图的活动的实时期间保持不变.过了一会儿,我得到了一个

OutOfMemoryError:位图大小超过VM预算

这意味着我有泄漏,位图不会被垃圾收集.我之前问过这个问题,但现在情况发生了一些变化.我做了一个init方法,我设置了我想要使用的位图,但这仍然不是一个好方法,错误出现在后面,但仍然存在.

这是代码

public class MyMapView extends View {
private int xPos = 0;
private int yPos = 0;
private int space = 0;

private Bitmap resizedBitmap;
private Bitmap position;
private Bitmap mapBitmap;

public void setMapBitmap(Bitmap value) {
    this.mapBitmap =  value;
}

public MyMapView(Context context) {
 super(context);
}

public MyMapView(Context context, AttributeSet attrs) {
 super(context, attrs);
}

public MyMapView(Context context, AttributeSet attrs, int defStyle) {
 super(context, attrs, defStyle);
}

public void init(final Context context) {
 Paint paint = …
Run Code Online (Sandbox Code Playgroud)

android out-of-memory custom-view ondraw

18
推荐指数
1
解决办法
2万
查看次数