我目前正在通过android应用中的koin依赖注入来使用objectbox。它工作正常,但是我需要重新初始化我的DI,因此我需要先销毁boxStore。这是因为我通过DI初始化了盒子,如果不销毁当前的BoxStore,则无法创建新盒子。
我找到了类似的帖子How to close Objectbox Store and delete data files,但是它并没有解决我的问题。
我尝试调用deleteAllFiles,但是出现错误。
BoxStore.deleteAllFiles(context, (BoxStoreBuilder.DEFAULT_NAME))
BoxStore.deleteAllFiles(context, null)
我收到错误消息:
java.lang.IllegalStateException:无法删除文件:存储仍处于打开状态
这是上面提到的代码行。任何建议都会很有帮助
答案 0 :(得分:0)
解决方案:
我必须分别访问我的每个框并一次将其删除。
fun clearAll(){
firstBox.box.removeAll()
secondBox.box.removeAll()
.......
}
fun closeAll(){
firstBox.box.close()
secondBox.box.close()
.......
}
答案 1 :(得分:0)
您可以仅关闭boxStore,然后删除所有文件:
boxStore.close();
boxStore.deleteAllFiles();
还有一个static method用于删除所有文件(如果要在打开boxStore之前删除所有文件)
这是最有效的方法。