[英]Xamarin.Forms Android app SQLite data disappears
我正在使用C#為Android編寫Xamarin.Forms應用。 我在以下位置設置了Sqlite dB:System.Environment.SpecialFolder.Personal
當應用程序部署在設備上時,我可以添加數據,然后檢索它。 但是,當我第二天檢查應用程序時(離線,無需從PC進行調試),所有的dB數據都消失了。
這是否意味着一段時間后dB文件消失了?
來自數據庫的數據不應消失。 您確定數據庫初始化代碼可以嗎? 也許每次您啟動應用程序時,數據是否都已恢復到某種啟動狀態?
sqlite db中數據神秘消失的原因可能有多種。
確保您的db文件存在,也許您可以在某個地方實現一個小的調試按鈕,這將引發警報,告訴您該文件是否存在。
但是,使用System.Environment.SpecialFolder.Personal應該不是原因,我也將該文件夾用於我的應用程序。
第二,您是否積極進行交易? 特別是當您的應用程序后台運行時,我建議調用Commit()以確保將每個掛起的事務都寫入數據庫,因為您不知道應用程序后台運行時何時垃圾回收器出現。
如果使用多個線程,請確保以支持多線程環境的模式打開數據庫。 如果您使用簡單的方法打開sqlite數據庫
SQLiteConnection conn = new SQLite.SQLiteConnection(path);
數據庫將打開單線程。 嘗試以下方法:
SQLiteConnection conn = new SQLite.SQLiteConnection(path, SQLiteOpenFlags.Create | SQLiteOpenFlags.ReadWrite | SQLiteOpenFlags.NoMutex);
如果那沒有幫助,請對您的代碼有更多的了解(如何打開數據庫,如何插入/更新數據等)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.