我希望在我的应用关闭时保存一些小型数据结构(总计约1kB)以及用户的偏好设置。仅在我的PreferenceActivity中修改设置,但几乎每个活动都修改了数据结构。我已经扩展Application
并使所有数据结构和首选项保持静态。然后,我尝试在我的应用程序类onTerminate()
中保存到SharedPreferences并在onCreate()
中再次加载它。但是,onTerminate()
documentation表示"永远不会在生产Android设备上调用它,只需将其删除即可删除流程"。
this question的答案建议在修改其数据的每项活动的onStop()
方法中保存到SharedPreferences。这是否可以保证数据保存在所有案例中?有没有办法避免每次用户在活动之间转换时的浪费(或者我应该关心)?
答案 0 :(得分:2)
我诚实地保存在Android推荐的每个活动的onPause()
中(例如,当您发送电子邮件时,请注意当应用暂停时如何保存草稿,例如屏幕关闭时)。除非你注意到它造成滞后/延迟,否则它可能无关紧要。
如果您使用此“自动保存”方法注意滞后,那么您应该在每个活动中实现某种“保存”功能,例如,可能需要使用{{ 1}} / ProgressDialog
组合。