当新的 sqlites 添加到 SD 卡上的特定目录时,我在使用 FileObserver 更新元数据库时遇到了问题。如果我手动 adb 将一个新的 sqlite 推送到目录,然后调用onEvent(FileObserver.CREATE, <filename>)
,它可以完美运行。但是,当我调用FileObserver.startWatching()
并 adb 推送一个新的 sqlite 以供观察者自己捕获时,它会调用onEvent
(使用与我手动调用它时相同的参数 - 我检查过),打开 sqlite 文件正常,但找不到任何当我查询新打开的 sqlite 并引发 sqlite 异常时,它的表。
我正在使用 SQLiteDatabase 的openDatabase()
方法,所以它不会找不到原始文件并创建一个空的(一个常见问题)。此外,在 adb shell 中进行的相同 sqlite 查询可以很好地访问新添加的 sqlite 表。
有人知道为什么会发生这种情况吗?根据手动调用的成功,我的代码似乎可以正常工作,因此我正在寻找我可能错过的 Android 上的 FileObservers 或 SQLite 的任何怪癖,因为我对这两者都是新手。
更onEvent(FileObserver.CREATE, <filename>)
_ onEvent
_方法。