1

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

查看Android Storage Options 页面,他们提供了一些选择,最简单的似乎是共享首选项。现在这些实际上并不是应用程序偏好,而是应用程序所在位置的简短指示。

我担心的是,偏好预计不会经常变化,因此可能的用例可能无法处理很多变化。很多时候,我的意思是大约每秒一次达到峰值,具体取决于用户活动。

所以我想确定两件事。


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

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

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

否则,我宁愿在状态发生变化时保存它,以免丢失任何东西。


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

4

1 回答 1

1

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

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

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

您还可以分try/catch块停止应用程序,以始终保存您的设置。

于 2012-09-24T08:18:40.003 回答