當新的sqlite添加到SD卡上的特定目錄時,我遇到了使用FileObserver更新元數據庫的問題。如果我手動adb推新的sqlite到目錄,然後撥打onEvent(FileObserver.CREATE, <filename>)
,它完美的作品。然而,當我呼籲FileObserver.startWatching()
和adb推觀察員的新sqlite自己捕獲,它調用onEvent
(與我手動調用它相同的參數 - 我檢查),打開sqlite文件罰款,但無法找到當我查詢新打開的sqlite並引發sqlite異常時,它的任何表。Android FileObserver找到SQLite,但找不到它們的表/內容
我使用的SQLiteDatabase的openDatabase()
方法,所以它不是無法找到原來的和創建一個空的(一個共同的問題)。另外,在adb shell中進行的相同的sqlite查詢訪問新添加的sqlite的表格也很好。
有沒有人有任何想法,爲什麼會發生這種情況?基於手動調用的成功,我的代碼看起來工作正常,所以我正在尋找任何帶有FileObservers或Android上的SQLite的怪癖,我可能已經錯過了,因爲我對這兩者都是新手。
UPDATE:進一步調試表明,如果我亞行推動一個文件,並手動調用onEvent(FileObserver.CREATE, <filename>)
,然後啓動FileObserver觀看和亞行推動同一個文件到同一位置,在FileObserver執行這些onEvent
查詢,沒有麻煩定位表。 ..不知道這是什麼意思。