销毁对象框数据库

Destroy objectbox DB

我目前在 android 应用程序中通过 koin 依赖项注入使用 objectbox。它工作正常,但我需要重新初始化我的 DI,所以我需要先销毁 boxStore。这是因为我通过 DI 初始化了盒子,如果我不破坏当前的 BoxStore,我就无法创建一个新的。

我找到了类似的 post 但是它没有解决我的问题。

我试过调用 deleteAllFiles 但是我收到了一个错误。

        BoxStore.deleteAllFiles(context, (BoxStoreBuilder.DEFAULT_NAME))

        BoxStore.deleteAllFiles(context, null)

我收到错误消息:

java.lang.IllegalStateException:无法删除文件:商店仍在营业

这是上面提到的代码行。任何建议都会很有帮助

解决方案:

我不得不单独访问我的每个盒子并一次删除一个。

fun clearAll(){
    firstBox.box.removeAll()
    secondBox.box.removeAll()
    ....... 
}


fun closeAll(){
    firstBox.box.close()
    secondBox.box.close()
    ....... 
}

您可以关闭boxStore,然后删除所有文件:

boxStore.close();
boxStore.deleteAllFiles();

还有一个static method用于删除所有文件(如果你想在打开boxStore之前删除所有文件)

这是最有效的方法。

参考:https://github.com/objectbox/objectbox-java/issues/317