我的活动在我的应用中占用了大量内存。因此,每当用户从该活动切换到其他活动时,我都会尝试调用finish()来停止该活动。
我的问题是,是否会从该活动调用finish()释放内存空间,或者只是完成该活动而不清除该特定活动使用的内存?
非常感谢任何帮助..
答案 0 :(得分:7)
请在您的活动中尝试此操作并检查..
@Override
public void onDestroy() {
super.onDestroy();
Runtime.getRuntime().gc();
}
答案 1 :(得分:4)
您正在调用finish()
方法的活动被销毁,其所有资源都排队等待垃圾回收,因为对此活动的引用变得无法访问。因此,此活动使用的所有内存将在下一个GC周期中释放。
答案 2 :(得分:0)
是pixie,关于finish()是正确的,只是有关调用活动完成的更多信息,从堆栈中删除该活动。这意味着从遍历活动1 - >活动2和调用活动2,如果在活动1中调用了finish(),则活动1将从堆栈中删除。