如何从 return 方法正确释放位图?

How to relase bitmap from a return method correctly?

这个方法会回收imageUtils.mediaImageToBitmap(image, activity);中的位图吗?

因为我不能在 return methodBitmap;

之后进行回收
Bitmap bitmap = imageUtils.mediaImageToBitmap(image, activity);
//some process
...
//some process
bitmap.recycle();

更新

完成后我放了bitmap.recycle()但是在imageUtils.mediaImageToBitmap(image, activity);里面那个函数里有一个位图,它也需要回收吗?

bitmap.recycle()会自动回收里面的位图imageUtils.mediaImageToBitmap(image, activity);?

    public Bitmap mediaImageToBitmap(Image image, Context context) {
        Bitmap bitmap;
        //Do I need to do bitmap recycle in this method's Java Class?
        //or 
        //The other class that call this method 
        //Bitmap bitmap = imageUtils.mediaImageToBitmap(image, activity);
        //Then bitmap.recycle is enough?
        return bitmap;
    }

你的语句不会在 return 语句之后执行,但是如果你知道这个概念,那么在 return 语句之后会执行一个块,最后用 try catch 块:

public Bitmap methodBitmap() 
{
        Bitmap bitmap
        try {
            bitmap = imageUtils.mediaImageToBitmap(image, activity);
            //some process
        ...
            //some process

            return bitmap;
        }
        catch (Exception e) {
            // Do necessary step on exception case
            return bitmap;
        }
        finally {
            bitmap.recycle();    
        }
}

Note : Take necessary argument on methodBitmap as per your need

您的 imageUtils.mediaImageToBitmap(image, activity); 应该只返回对您分配给局部变量的位图对象的引用。换句话说,只有一个位图对象,调用 bitmap.recycle() 一次将自动回收该位图对象。