我对Dalvik如何处理位图数据有疑问。

说我有一个PictureFrame类:

public final class PictureFrame {

    private final Bitmap mBitmap;

    public PictureFrame(final Bitmap pBitmap) {
        this.mBitmap = pBitmap; // Loaded externally, recycle() has not been called
    }

    public final Bitmap getBitmap() {
        return this.mBitmap;
    }
}


我可以相信,对getBitmap()的任何调用都会安全地返回不会被垃圾回收的图像吗?另外,如果很少调用getBitmap(),那么使用许多PictureFrame实例的应用程序是否会提高内存效率?或者,是否仅保留对位图在磁盘上的位置的引用,并使每次对getBitmap()的调用每次都执行文件I / O操作,是否更有意义?

最佳答案

假设您没有将null传递给构造函数,则getBitmap()将永远不会返回null。

但是,如果您确实在位图上调用了recycle(),则随后使用它的任何尝试都将导致IllegalStateException

07-28 13:02