我想在活动结束时调用 onDestroy() 这就是我的意思:
@Override
protected void onDestroy()
{
unbindDrawables(findViewById(R.id.rootView));
super.onDestroy();
System.gc();
}
但是,它从未被调用过。的确,当我使用自动完成时,onDestroy永远不会出现...... 但onPause,onCreate,onStop .... yes
我在这里想念一下吗?毕竟我可能真是太蠢了......
答案 0 :(得分:3)
您应该致电finish()
。
onDestroy会自动调用,但你不应该依赖于被调用。
的onDestroy():
在您的活动被销毁之前收到的最后一个电话。这可能是因为活动正在完成(有人在其上调用finish(),或者因为系统暂时销毁此活动实例以节省空间。您可以使用isFinishing()方法区分这两种情况。
答案 1 :(得分:0)
onDestroy可能未被调用
注意:不要指望将此方法称为保存地点 数据!例如,如果活动正在编辑内容中的数据 提供者,这些编辑应该在onPause()或 onSaveInstanceState(Bundle),不在这里。这种方法通常是 实现释放资源,如与线程相关联的线程 活动,以便被破坏的活动不会留下这样的东西 当其余的应用程序仍在运行时。 有 系统将简单地杀死活动的托管的情况 没有在其中调用此方法(或任何其他方法)的过程,所以它 不应该被用来做那些打算留下来的东西 过程消失后。
派生类必须调用超类的实现 这种方法。如果他们不这样做,将抛出异常。
答案 2 :(得分:0)
感谢大家的帮助。 我现在明白可能不会调用onDestroy。
我不知道为什么,但现在Eclipse提示我onDestroy方法。 所以它被召唤但不是我想要的地方。