【发布时间】:2011-08-30 21:00:04
【问题描述】:
我有一个活动在我的应用程序中使用了大量内存。因此,每当用户从该活动切换到其他活动时,我都会尝试调用 finish() 来停止该活动。
我的问题是,从该活动中调用 finish() 会释放内存空间还是只是完成该活动而不清理该特定活动使用的内存?
非常感谢任何帮助..
【问题讨论】:
我有一个活动在我的应用程序中使用了大量内存。因此,每当用户从该活动切换到其他活动时,我都会尝试调用 finish() 来停止该活动。
我的问题是,从该活动中调用 finish() 会释放内存空间还是只是完成该活动而不清理该特定活动使用的内存?
非常感谢任何帮助..
【问题讨论】:
请在您的活动中尝试这个并检查..
@Override
public void onDestroy() {
super.onDestroy();
Runtime.getRuntime().gc();
}
【讨论】:
是的,小精灵,finish() 是正确的,只是为了获取有关在活动中调用完成的更多信息,从堆栈中删除该活动。这意味着从 Activity 1 --> Activity 2 遍历并调用 Activity 2,如果在 Activity 1 中调用了 finish(),则 Activity 1 将从堆栈中删除。
【讨论】:
您从中调用finish() 方法的活动被销毁,并且其所有资源都排队等待垃圾回收,因为对该活动的引用变得不可访问。因此,此活动使用的所有内存都将在下一个 GC 周期中释放。
【讨论】: