2017-01-21 161 views
0

开发一个应用程序,显示在初始屏幕中从其数据库中检索到的数据。用户可以通过单独的编辑屏幕编辑数据。退出编辑屏幕会将用户返回到初始显示屏幕,我重新查询数据库,但返回的数据是编辑前的值。安卓更新记录和查询

我使用的是分贝提供者模型和曾尝试:

  • 闭每次使用一个单独的光标使用单独的返回到初始屏幕
  • 在初始数据库查找
  • 使用的光标查询以获得显示在编辑屏幕上的数据
  • 确保在使用该游标数据完成时关闭每个使用的游标

数据库查询和重新启动应用程序显示编辑的值,所以我确信更新正在工作。我错过了什么?

+0

你在使用[Loader](https://developer.android.com/guide/components/loaders.html)吗? – Karakuri

+0

不使用加载程序,一次只处理一条记录。 – MrMagoo

+0

在这一点上,你需要弄清楚你的代码没有达到你期望的目标。当你返回到初始屏幕时,确认你实际上正在运行一个新的查询,这个新的查询实际上返回了一些数据,这触发了UI的更新并将新值绑定到你的视图,新值实际上是新值而不是陈旧的价值(可能涉及某种缓存)等等。某处某处不按预期工作。 – Karakuri

回答

0

发现问题与用于支持编辑器功能的类中的误解状态有关。认为在退出编辑屏幕时会调用onStop()和onDestroy(),并调用方法来更新这些方法中的数据库。

改为使用onBackPressed(),并在显示更新的值之前完成更新过程。