【发布时间】:2014-06-17 08:49:18
【问题描述】:
我的应用程序由(例如)3 个活动组成:Activity1、Activity2、Activity3。每个活动在 XML 文件中声明的所有主要布局上都有一个唯一的背景图像。 从 Activity1 用户转到 Activity2 和 Activity3 旁边,所以前 2 个被推入堆栈。 问题是前 2 个活动占用了太多内存,在 Activity3 中我有时会出现 OOM 异常。 我找到了关于这种行为原因的答案 - https://stackoverflow.com/a/4836241/1159507 在此之前,我相信当活动进入堆栈时,它会释放所有内存。 我相信片段堆栈的相同行为。 所以我的问题是 - 如何在活动或片段进入堆栈时释放内存并在后按时保持负责任的 UI?
【问题讨论】:
-
在
startActivity(intent)之后尝试使用finish()。 -
如果我打电话给
finish(),我以后将无法通过后按返回此活动。 -
如果他使用
finish(),则activity会被销毁。然后他必须再次传递来自onBackPressed()的第二个和第三个活动的意图。可以通过这种方式实现,但在更改 Android 的默认行为时以这种方式实现是不好的做法。
标签: android memory-management back-stack