2017-01-21 31 views
0

開發一個應用程序,顯示在初始屏幕中從其數據庫中檢索到的數據。用戶可以通過單獨的編輯屏幕編輯數據。退出編輯屏幕會將用戶返回到初始顯示屏幕,我重新查詢數據庫,但返回的數據是編輯前的值。安卓更新記錄和查詢

我使用的是分貝提供者模型和曾嘗試:

  • 閉每次使用一個單獨的光標使用單獨的返回到初始屏幕
  • 在初始數據庫查找
  • 使用的光標查詢以獲得顯示在編輯屏幕上的數據
  • 確保在使用該遊標數據完成時關閉每個使用的遊標

數據庫查詢和重新啓動應用程序顯示編輯的值,所以我確信更新正在工作。我錯過了什麼?

+0

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

+0

不使用加載程序,一次只處理一條記錄。 – MrMagoo

+0

在這一點上,你需要弄清楚你的代碼沒有達到你期望的目標。當你返回到初始屏幕時,確認你實際上正在運行一個新的查詢,這個新的查詢實際上返回了一些數據,這觸發了UI的更新並將新值綁定到你的視圖,新值實際上是新值而不是陳舊的價值(可能涉及某種緩存)等等。某處某處不按預期工作。 – Karakuri

回答

0

發現問題與用於支持編輯器功能的類中的誤解狀態有關。認爲在退出編輯屏幕時會調用onStop()和onDestroy(),並調用方法來更新這些方法中的數據庫。

改爲使用onBackPressed(),並在顯示更新的值之前完成更新過程。