2012-09-24 61 views
1

我希望確保我的Android應用程序狀態量保持不變。它很小,約有50個字符。經常在Android中保存偏好設置的任何缺點?

看着Android Storage Options page,他們給出了一些選擇,最簡單的似乎是共享偏好。現在這些實際上並不是應用程序偏好設置,更多是應用程序位於何處的簡短說明。

我擔心的是,偏好預計很少發生變化,可能的用例可能不會處理很多變化。很多時候,我的意思是每秒大約一次,這取決於用戶的活動。

所以我想確定兩件事。


第一是該網頁上面鏈接上的示例代碼具有在onStop方法被寫入了首選項。我們保證在應用程序退出時這會運行,不管是什麼?

如果是這樣,我可以維持狀態在內存中,並用它來持久保存,然後這個更新頻率問題就消失了。

基本上,我想確保我的應用程序在沒有保存狀態的情況下不能停下來(當然不會發生災難性故障)。

否則,我寧願保存這個狀態,只要它改變,以免丟失任何東西。


其次,而這僅僅是如果我要每次改變時間保存狀態很重要,有什麼缺點節約喜好高達每秒一次?如前所述,我不確定它是否設計用於頻繁更新。

回答

1

如果應用程序正常退出,則調用onStop()。如果該應用程序是後臺(即與主頁按鈕/被叫)onPause()被稱爲,其中調用onStop()。如果應用程序退出(即使用後退按鈕),則調用onPause(),該調用onStop(),其調用onDestroy()。但是,當應用程序崩潰時(即通過nullpointerExceptiononStop()未被調用,應用程序崩潰)。

就我個人而言,我大多使用某種settingsContainerObject,只需將我的首選項寫入onStop()方法的內部存儲。工作得很好。

簡而言之:是的,onStop()總是在應用程序退出或退出時調用。

您也可以在try/catch區塊中停止應用程序,以始終保存您的設置。