2011-10-11 165 views
0

我正在嘗試在onPause()事件期間將密鑰保存到SharedPreferences,但是當我離開活動並返回到活動時,這被稱爲BOTH。Android生命週期發生故障

因此,當我返回活動時,我的值會被零和默認值覆蓋,並且oncreate方法中的方法不會像我期望的那樣響應,因此。

也許我誤解了Android的生命週期,但我已經看到了生命週期圖十幾次,我的程序沒有像我期望的那樣行事。

Insight深表讚賞。

+0

讓我們來看看你的代碼。 – brianestey

+0

r使用任何lanuch模式進行活動顯示您正在使用的代碼 –

回答

1

根據我的經驗,一些設備完全是活動的事件生命週期的核心。

我發現的唯一解決方案是使活動儘可能獨立於生命週期。我見過設備,當它們從onPause返回時,只會創建一個新的活動。你應該檢查一下,如果這不是你的情況。

Android設備的測試似乎在這方面缺乏很多。

+0

感謝您的建議,它使我走上了正確的道路。我使用sharedpreferences,如果onCreate()現在基於我存儲的值的條件 – CQM

0

根據活動生命週期,onPause()將在onResume()之後和onStop()之前被調用。所以你在onPause()中做的任何事情都會執行兩次。但在我的實驗中,有些設備在onStop()之前有時會跳過onPause()。所以你不要單獨依靠Pause()。最好用適當的條件在onCreate()或onResume()上編寫代碼。

請把你的代碼放在這裏以獲得更多的解釋。