为什么onCreate调用了两次,但没有onDestroy在两个onCreate之间调用我的Activity?

问题描述:

我的团队编写了一个复杂的LBS /聊天应用程序,有一个MainActivity作为主要的展示活动。 当这个MainActivity开始时,“onCreate”被第一次调用。 当我切换到其他几个应用程序,并回到我的应用程序的MainActivity,“onCreate”被称为第二次。 但MainActivity的“onDestroy”从未被调用过。一些指针(单身/全球,不属于任何活动)将被“自动”设置为空,不受我的控制,它会导致我的应用程序问题。为什么onCreate调用了两次,但没有onDestroy在两个onCreate之间调用我的Activity?

是否有某个模块/类持有对MainActivity的引用或其他一些原因?

我需要帮助-_-!

感谢所有能给我一些提示的人。

谢谢!

+0

当屏幕灯关闭后再打开或再次打开或者如果您在其他活动中传递任何意图,那么只有一次它会调用创建方法,并且之后如果活动恢复,则再次打开继续电话亲爱的 –

当你开始活动这个功能被称为:onCreate()onStart()onResume()当你去另一个活动,onPause()调用。

如果你想打电话onDestroy()到您的应用程序,你必须调用this.finish();,但是,当你调用this.finish(),您必须在您的应用程序处理onBackPress()

我希望对你有用

+0

http:// developer.android.com/training/basics/activity-lifecycle/index.html –

OnCreate在活动圈的生活中只召唤一次。 如果您的应用程序在后台并返回前台,再次创建调用的唯一原因是操作系统会终止此活动。 您可以使用onSaveInstanceState()保存数据。

+0

我回顾了http://developer.android.com/reference/android/app/Activity.html活动的生命周期 我发现了一些东西总是错误的理解。当内存不足时,应用程序将被杀死,并且此时将不会调用Activity的onDestroy,对吗? 谢谢 – Archy

+0

从http://developer.android.com/guide/components/activities.html。 - “因为onPause()是三者中的第一个,所以一旦创建了活动,onPause()是保证在进程被终止之前调用的最后一个方法 - 如果系统在紧急情况下必须恢复内存,则onStop ()和onDestroy()可能不会被调用。“ – blay

+0

当我的应用程序被终止时,我想停止其中一个服务并取消我的ImageCache(执行一些未初始化的操作,例如光盘刷新/关闭操作)。哪里更适合我放置我的代码? 谢谢! – Archy