2012-09-24 37 views
1

我希望确保我的Android应用程序状态量保持不变。它很小,约有50个字符。经常在Android中保存偏好设置的任何缺点?

看着Android Storage Options page,他们给出了一些选择,最简单的似乎是共享偏好。现在这些实际上并不是应用程序偏好设置,更多是应用程序位于何处的简短说明。

我担心的是,偏好预计很少发生变化,可能的用例可能不会处理很多变化。很多时候,我的意思是每秒大约一次,这取决于用户的活动。

所以我想确定两件事。


第一是该网页上面链接上的示例代码具有在onStop方法被写入了首选项。我们保证在应用程序退出时这会运行,不管是什么?

如果是这样,我可以维持状态在内存中,并用它来持久保存,然后这个更新频率问题就消失了。

基本上,我想确保我的应用程序在没有保存状态的情况下不能停下来(当然不会发生灾难性故障)。

否则,我宁愿保存这个状态,只要它改变,以免丢失任何东西。


其次,而这仅仅是如果我要每次改变时间保存状态很重要,有什么缺点节约喜好高达每秒一次?如前所述,我不确定它是否设计用于频繁更新。

回答

1

如果应用程序正常退出,则调用onStop()。如果该应用程序是后台(即与主页按钮/被叫)onPause()被称为,其中调用onStop()。如果应用程序退出(即使用后退按钮),则调用onPause(),该调用onStop(),其调用onDestroy()。但是,当应用程序崩溃时(即通过nullpointerExceptiononStop()未被调用,应用程序崩溃)。

就我个人而言,我大多使用某种settingsContainerObject,只需将我的首选项写入onStop()方法的内部存储。工作得很好。

简而言之:是的,onStop()总是在应用程序退出或退出时调用。

您也可以在try/catch区块中停止应用程序,以始终保存您的设置。