2013-10-31 51 views
0

我的團隊編寫了一個複雜的LBS /聊天應用程序,有一個MainActivity作爲主要的展示活動。 當這個MainActivity開始時,「onCreate」被第一次調用。 當我切換到其他幾個應用程序,並回到我的應用程序的MainActivity,「onCreate」被稱爲第二次。 但MainActivity的「onDestroy」從未被調用過。一些指針(單身/全球,不屬於任何活動)將被「自動」設置爲空,不受我的控制,它會導致我的應用程序問題。爲什麼onCreate調用了兩次,但沒有onDestroy在兩個onCreate之間調用我的Activity?

是否有某個模塊/類持有對MainActivity的引用或其他一些原因?

我需要幫助-_-!

感謝所有能給我一些提示的人。

謝謝!

+0

當屏幕燈關閉後再打開或再次打開或者如果您在其他活動中傳遞任何意圖,那麼只有一次它會調用創建方法,並且之後如果活動恢復,則再次打開繼續電話親愛的 –

回答

0

當你開始活動這個功能被稱爲:onCreate()onStart()onResume()當你去另一個活動,onPause()調用。

如果你想打電話onDestroy()到您的應用程序,你必須調用this.finish();,但是,當你調用this.finish(),您必須在您的應用程序處理onBackPress()

我希望對你有用

+0

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

2

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

相關問題