在Android中经常保存首选项的任何缺点?

时间:2012-09-24 07:53:02

标签: android sharedpreferences persistent-storage

我的Android应用中的状态相当少,我希望确保持久保存。它很小,大约有50个字符。

Android Storage Options page,他们给出了一些选择,最简单的似乎是共享偏好。现在这些不是应用程序首选项,更多是应用程序所在位置的简短指示。

我担心偏好会不经常变化,因此可能的用例可能不会处理很多变化。很多,我的意思是每秒大约一次,取决于用户的活动。

所以我想确定两件事。


首先,上面链接的页面上的示例代码的首选项是在onStop方法中写出的。我们是否保证在应用程序退出时会运行,无论如何?

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

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

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


其次,这一点很重要,只要我每次更改都必须保存状态,是否有任何缺点可以保存首选项每秒一次?如上所述,我不确定它是否专为频繁更新而设计。

1 个答案:

答案 0 :(得分:1)

如果应用程序正常退出,则会调用onStop()。如果应用程序是后台运行的(即通过主页按钮/被调用),则调用onPause(),调用onStop()。如果应用程序退出(即使用后退按钮),则会调用onPause(),调用onStop(),其中onDestroy()会调用nullpointerException。但是,当应用程序崩溃时(即通过onStop()settingsContainerObject未被调用,应用程序只会崩溃)。

就个人而言,我大多使用某种onStop(),只是在onStop()方法中将我的偏好写入内部存储。效果很好。

简而言之:是的,当应用程序处于后台或退出时,始终会调用try/catch

您也可以在{{1}}区块中停止申请,以便始终保存您的设置。