如何关闭 Objectbox Store 和删除数据文件

How to close Objectbox Store and delete data files

我用我的数据列表调用 put() 后出现异常。
我知道我之前关闭该框是有原因的(必须关闭 deleteAllFiles())。
我该如何重新打开它?如我所见,关闭后dataBoxStore不为空。

我的代码:

dataBoxStore = MyObjectBox.builder().androidContext(this).name("DB").build();

dataBoxStore.close();
dataBoxStore.deleteAllFiles();

final Box<Data> areaLocationBox = dataBoxStore.boxFor(Data.class);
areaLocationBox.put(myList);

异常:

 Caused by: java.lang.IllegalStateException: Store is closed
    at io.objectbox.BoxStore.checkOpen(BoxStore.java:261)
    at io.objectbox.BoxStore.beginTx(BoxStore.java:310)
    at io.objectbox.Box.getWriter(Box.java:107)
    at io.objectbox.Box.put(Box.java:389)
dataBoxStore.put(myList);

抛出Store is closed while and dataBoxStore is not null的异常。

我找到的是再次启动boxStore来使用它:

dataBoxStore = MyObjectBox.builder().androidContext(this).name("DB").build();

dataBoxStore.close();
dataBoxStore.deleteAllFiles();

dataBoxStore = MyObjectBox.builder().androidContext(this).name("DB").build();
final Box<Data> areaLocationBox = dataBoxStore.boxFor(Data.class);
areaLocationBox.put(myList);

有了 ObjectBox 1.3,这变得更简单了。您可以在不启动 BoxStore 的情况下使用 one of the static BoxStore.deleteAllFiles methods

BoxStore.deleteAllFiles(context, "DB");