【问题标题】:Destroy objectbox DB销毁对象箱数据库
【发布时间】:2019-07-31 12:23:39
【问题描述】:

我目前在我的 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:无法删除文件:存储仍然打开

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

【问题讨论】:

    标签: android kotlin objectbox


    【解决方案1】:

    解决方案:

    我必须单独访问我的每个盒子并一次删除它们。

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

    【讨论】:

      【解决方案2】:

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

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

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

      这是最有效的方法。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-11
        • 2013-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多