mBitmap = Bitmap.createBitmap(176, 144,Bitmap.Config.RGB_565);
mBitmap.setPixels(rgb, 0, 176, 0, 0, 176, 144);

위 소스를 카메라 프리뷰 콜백에서 돌리고 있는데요 
mBitmap.recycle()함수를 써도 메모리 해제가 안되는 것 같습니다.

아래와 같이 코딩했는데 recycle() 함수를 쓰는 방식이 맞나요??

프로그램이 한 5초정도 돌아가다가 뻑이 남니다..
아무래도 메모리 탓인거 같은데...어찌하면 좋을지 도와주세요~ㅠㅠ


///////////////////////////////////////////////
public void surfaceChanged(SurfaceHolder holder, int format, int w,int h) {
  // TODO Auto-generated method stub
  Camera.Parameters parameters = mCamera.getParameters();
        parameters.setPreviewSize(176,144);
        mCamera.setParameters(parameters);
        mCamera.startPreview();
        mCamera.setPreviewCallback(new PreviewCallback() {
   
   @Override
   public void onPreviewFrame(byte[] data, Camera camera) {
    // TODO Auto-generated method stub
    Canvas c = null;
    try{
     c = mHolder.lockCanvas(null);
     synchronized(mHolder){
      mBitmap = Bitmap.createBitmap(176, 144,Bitmap.Config.RGB_565);
      decodeYUV(rgb,data,176,144);
      mBitmap.setPixels(rgb, 0, 176, 0, 0, 176, 144);
      draw(c);
     }
    }catch(Exception e){
     e.printStackTrace();
    }finally{
     if(mBitmap  != null){
      mBtimap.recycle();       
     }

     if(c != null){
      mHolder.unlockCanvasAndPost(c); 
     }
     
    }
   }
  });
 }
 @Override
 public void draw(Canvas canvas) {
  // TODO Auto-generated method stub
  canvas.drawBitmap(mBitmap, 0,0, null);
 }