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