지도 앱이 있습니다. 어딘가에 내 코드에서 데이터베이스의 데이터를 캔버스로 렌더링하고 있습니다. "메모리 부족"예외가 발생하여이를 피하는 방법을 알 수 없습니다.루프에서 비트 맵을 만들 때 메모리 누수가 발생했습니다.
다음은 관련 방법입니다. bitmapfactory로 비트 맵을 만들 때 예외가 발생합니다.
private static void _renderImage(Canvas g, Point[] points, RImageData imageData,
RMapView mapView) {
Bitmap image = (Bitmap)imageData.image;
Paint paint = new Paint();
if(image == null) {
image = BitmapFactory.decodeByteArray(imageData.getImageBytes(), 0,
imageData.getImageBytes().length);
imageData.image = image;
}
g.drawBitmap(image, points[0].x, points[0].y, paint);
}
이미지를 리사이클 해보았지만 캔버스는 재활용 된 비트 맵으로 작동하지 않습니다.
어떤 해결책이라도 많이 들었을 것입니다.
_renderImage()를 얼마나 자주 호출하고 있습니까? – mcfinnigan
많이 있습니다. 캔버스에 그려지는 타일 (이미지 덩어리)을 상상해보십시오. – no9