我对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
。