android - 我什么时候应该将数据保存到 SQLite 中,输入到我的 Android 应用程序的 fragment 中?

标签 android sqlite events

我在看 Google 的一篇应用评论,他们正在窃取这个有保存按钮的人的应用,如果你在离开前没有保存,它会弹出一个对话框。他们说 Android 应用程序应该只是保存而不是打扰用户。

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

最佳答案

Fragments 在生命周期方面很像 activities。所以 onPause() 是保存持久状态的正确位置,稍后在 onPause() 之后可能为时已晚并可能导致数据丢失。 Google 建议使用“就地编辑”用户模型。也就是说,立即保存编辑,在您的情况下,当用户在输入字段之间切换时保存数据是一个好方法。如果您的 Fragment/Activity 被系统终止,这可以防止数据丢失。如果您认为保存状态可能需要几秒钟,您还可以在 onPause() 中使用 IntentService。在你的场景中,当用户在输入字段之间切换时,我会执行 AsyncTask 更新你的数据库,可能会检测是否真的发生了变化。

编辑:如果您正在使用 ContentProvider,请考虑使用 AsyncQueryHandler而不是 AsyncTask

关于android - 我什么时候应该将数据保存到 SQLite 中,输入到我的 Android 应用程序的 fragment 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11595464/

相关文章:

java - 执行服务重启

java - AlarmManager.ELAPSED_REALTIME_WAKEUP 在 android 中究竟做了什么

javascript - 对如何使用模块模式的困惑

android - 如何在Android ListView 中从sqlite中删除行

javascript - 向父级已禁用事件的子级添加事件监听器

.net - 如何从事件处理程序中的 SPItemEventProperties 获取当前添加的项目到 SPList?

java - 无法打开在 firebase 上上传的 pdf 文件

java - 如何在给定的不活动时间后隐藏 View

android - SecurityException 阻止我通过将图像的 URI 存储在 SQLIte 数据库中来显示图像

mysql - 存储 2 亿条记录的最节省空间的方法是什么?