Hive - flutter:关闭应用程序时是否删除了框?

Hive - flutter: are boxes deleted when app is closed?

我需要一种在我的 Flutter 项目中存储简单数据的方法,我正在考虑使用 Hive flutter

我不太明白的是,当用户关闭 app/website.

时,存储在框中的数据是否被清除(如从磁盘中删除)

official documentation 说:

Before your application exits, you should call Hive.close() to close all open boxes. Don't worry if the app is killed before you close Hive, it doesn't matter.

这有点模棱两可。

所以:关闭app/website时是否清除了存储在框中的数据?如果没有,我该如何手动清除它?

当您关闭一个盒子时,hive 将盒子中的数据保存到本地存储文件(“长期内存”)并释放缓存(“短期内存”)以用于其他内容。您不会丢失您的应用程序数据。关闭盒子也不是绝对必要的,Hive 会在退出时自行关闭盒子。 Hive 的常见问题解答有更多详细信息:https://docs.hivedb.dev/#/more/faq

如果您想清除给定 Box box = Hive.box("box_name") 中的数据,您可以:

  • 删除单个条目:box.delete("entry_key")
  • 删除所有条目:box.deleteAll(box.keys)
  • 删除整个框:box.deleteFromDisk()Hive.deleteBoxFromDisk("box_name")
  • 删除所有(打开的)框:Hive.deleteFromDisk()

请注意,虽然浏览器和应用的行为相同,但实现方式不同:https://docs.hivedb.dev/#/more/browser