如何关闭 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");
我用我的数据列表调用 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");