正如标题所说,我有大约八个活动,布局充满高分辨率图像。在较低的内存较低的Android devicies上,它会单独打开每个活动,但是当我尝试打开另一个时,它会崩溃。但是,当我重新启动应用程序并打开该活动时,它可以工作我应该怎么做才能从第一个活动中清除这些图像中的应用程序内存,以便能够打开另一个活动? onDestroy()是否清理它?
答案 0 :(得分:2)
如果它喜欢xml布局中的资源图片,则无需清理它们,Android会为您完成。但是如果你使用一些大的位图对象。
Bitmpap bmp; // not null
bmp.recycle();
bmp = null;
final boolean bmpIsRecycled = bmp.isRecycled()
// Returns true if this bitmap has been recycled.
释放与此位图关联的本机对象,并清除对像素数据的引用。这不会同步释放像素数据;如果没有其他引用,它只是允许它被垃圾收集。位图标记为“死”,这意味着如果调用getPixels()或setPixels(),它将抛出异常,并且不会绘制任何内容。此操作无法撤消,因此只有在您确定位图没有进一步用途时才应调用此操作。这是一个高级调用,通常不需要调用,因为正常的GC进程将在没有更多对此位图的引用时释放此内存。
实际上当你的应用程序崩溃时,你有什么错误日志?也许这与内存泄漏无关?