喜欢:
startActivity(intent);
finish();
Run Code Online (Sandbox Code Playgroud)
没有调用finish() explicitly, onDestroy()就没有调用前Activity,而我的内存耗尽(OutOfMemory Exception).
所以,打电话是个好主意 finish() explicitly to prevent OutOfMemory Exception?
根据Android参考文档Bitmap.recycle():
释放与此位图关联的本机对象,并清除对像素数据的引用.这不会同步释放像素数据; 如果没有其他引用,它只是允许它被垃圾收集.位图标记为"死",这意味着如果调用getPixels()或setPixels(),它将抛出异常,并且不会绘制任何内容.此操作无法撤消,因此只有在您确定位图没有进一步用途时才应调用此操作.这是一个高级调用,通常不需要调用,因为正常的GC进程将在没有更多对此位图的引用时释放此内存.
但是,我读过的很多书都建议通过调用Bitmap.recycle()来释放内存,确保不再需要它.
这让我很困惑:使用后是否需要打电话Bitmap.recycle()?