2012-09-07 16 views
-2

在我的應用程序中運行果凍豆4.1.1時,我有一個奇怪的行爲,當我開始一個活動並按回退按鈕返回到第一個活動時,它重新創建它通過調用onCreate也,我做了什麼,我也處理了第一個活動的配置更改,所以它不會在配置更改時重新創建,但是這沒有做任何事情。 !!!!爲什麼果凍豆的活動生命週期有一個奇怪的行爲。你可以看到我的意思,只需創建一個簡單的Android項目並創建兩個活動,從第一個活動到第一個活動,然後按回來按鈕並查看日誌onCreate活動1將被調用!!!!果凍豆的活動生命週期不同

+0

你在說這裏的碎片嗎?因爲他們有時可以重新創建。也就是說,onCreateView將被調用。但是,主要活動應遵循Android標準。 – Edison

+0

試試我自己說的 – user4o01

+0

我的任何Jelly Bean應用程序中都沒有這種行爲。 – Eric

回答

4

沒有保證操作系統不會殺死你的背景如果它確定需要資源,它隨時可以進行活動。只是猜測,但onCreate可能在這些情況下被調用,因爲系統在返回之前會終止第一個活動。

編輯:http://developer.android.com/guide/components/activities.html#Lifecycle

如果活動暫停或停止,該系統可以從內存無論是要求它結束(調用finish()方法)放棄它,或者乾脆殺死它的進程。當活動再次打開時(在完成或殺死之後),它必須全部創建。

1

這裏是你的另一個參考:

http://developer.android.com/training/basics/activity-lifecycle/recreating.html http://developer.android.com/training/basics/activity-lifecycle/starting.html

在第一個鏈接:

該系統還可以摧毀你的行爲,如果它現在停止,一直沒有長時間使用或前臺活動需要更多資源,因此係統必須關閉後臺進程才能恢復內存。

...

但是,如果系統破壞活動由於系統的限制(而不是正常的應用程序的行爲),那麼althought實際活動情況消失後,系統會記住它存在這樣如果用戶導航回到它,系統使用一組保存的數據創建活動的新實例,這些數據描述活動在銷燬時的狀態。系統用於恢復先前狀態的已保存數據稱爲「實例狀態」,是存儲在Bundle對象中的鍵值對的集合。

1
  1. 打開電話設置屏幕
  2. 點擊開發商選項(如果不存在,那麼按有關手機的5-6倍)
  3. 在應用程序類別中取消選中開發商選擇不保留活動標誌