4

我正在观看谷歌的一个应用评论,他们正在翻阅这个有保存按钮的应用,如果你在离开之前没有保存,它会弹出一个对话框。他们说安卓应用程序应该只是保存而不打扰用户。

我有一个片段,有几个字段,需要确定何时将数据保存到 SQLite 数据库中。我正在考虑通过onFocusChange事件节省每个字段的退出?或者这可能太频繁了?也许片段的onPause事件?我应该什么时候保存(请具体事件)?

4

2 回答 2

3

Fragments与生命周期非常相似activities。保存持久状态的正确位置也是如此onPause(),以后onPause()可能为时已晚并且可能导致数据丢失。Google 建议使用“就地编辑”用户模型。也就是说,立即保存编辑,在您的情况下,当用户在输入字段之间切换时保存数据是一种好方法。如果您的Fragment/Activity被系统杀死,这可以防止数据丢失。如果您认为保存状态可能需要几秒钟,您也可以IntentServiceonPause(). 在您的场景中,AsyncTask当用户在输入字段之间切换时,我将执行更新您的数据库,可能会检测是否确实发生了更改。

编辑:如果您使用的是ContentProvider比考虑使用AsyncQueryHandler而不是AsyncTask.

于 2012-07-21T20:55:57.273 回答
1
public void onDestroy()

Called when the fragment is no longer in use. This is called after onStop() and before onDetach().

我可能会使用它;这意味着用户已完成使用该片段。我不知道以这种方式或您的方式这样做有什么缺点。

于 2012-07-21T20:05:25.077 回答