在Android中频繁保存首选项有什么不利之处吗?

在Android中频繁保存首选项有什么不利之处吗?,android,sharedpreferences,persistent-storage,Android,Sharedpreferences,Persistent Storage,在我的Android应用程序中,我有一个相当小的状态,我希望确保它被持久保存。它很小,大约有50个字符 看一看,他们给出了一些选择,最简单的似乎是共享偏好。现在,这些并不是实际的应用程序首选项,而是应用程序所在位置的简短指示 我担心的是,偏好预期不会经常更改,因此可能的用例可能不会处理很多更改。我的意思是,根据用户活动的不同,峰值约为每秒一次 所以我想确定两件事 首先,上面链接的页面上的示例代码在onStop方法中写入了首选项。我们是否可以保证在应用程序退出时,无论发生什么情况,都会运行该程序

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

看一看,他们给出了一些选择,最简单的似乎是共享偏好。现在,这些并不是实际的应用程序首选项,而是应用程序所在位置的简短指示

我担心的是,偏好预期不会经常更改,因此可能的用例可能不会处理很多更改。我的意思是,根据用户活动的不同,峰值约为每秒一次

所以我想确定两件事


首先,上面链接的页面上的示例代码在
onStop
方法中写入了首选项。我们是否可以保证在应用程序退出时,无论发生什么情况,都会运行该程序

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

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

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



第二,只有在每次更改状态时都必须保存状态时,这一点才很重要。每秒最多保存一次首选项有什么不利之处吗?如前所述,我不确定它是否设计用于频繁更新。

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

就我个人而言,我主要使用某种类型的
设置ContainerObject
,只需将我的首选项写入
onStop()
方法中的内部存储。效果很好

简而言之:是,当应用程序处于后台或退出状态时,始终调用
onStop()


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

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

就我个人而言,我主要使用某种类型的
设置ContainerObject
,只需将我的首选项写入
onStop()
方法中的内部存储。效果很好

简而言之:是,当应用程序处于后台或退出状态时,始终调用
onStop()

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