1

我想在我的应用程序关闭时保存一些小数据结构(总共约 1kB)以及用户的偏好。设置仅在我的 PreferenceActivity 中修改,但数据结构几乎在每个活动中都进行了修改。我已经扩展Application并使所有数据结构和首选项成为静态的。然后我尝试在我的应用程序类中保存到 SharedPreferencesonTerminate()并再次将其加载到onCreate(). 但是,onTerminate()文档指出“永远不会在生产 Android 设备上调用它,在这些设备上,只需杀死它们就可以删除进程”。

这个问题的答案建议在onStop()每个活动修改其数据的方法中保存到 SharedPreferences 。这能保证在所有情况下都保存数据吗?有没有办法避免每次用户在活动之间转换时浪费保存(或者我什至应该关心)?

4

1 回答 1

3

老实说,我会onPause()按照 Android 的建议保存在每个活动中(即,当您写一封电子邮件时,请注意在应用程序暂停时如何保存草稿,例如屏幕关闭时)。除非您注意到它会导致滞后/延迟,否则它可能不会太重要。

如果您确实注意到这种“自动保存”方法的滞后,那么您可能应该在每个活动中实现某种“保存”功能,例如,这可能需要使用ProgressDialog/AsyncTask组合。

于 2013-01-04T08:34:37.070 回答