在 Flutter 中使用 Hive 数据库时我的应用程序冻结

Posted

技术标签:

【中文标题】在 Flutter 中使用 Hive 数据库时我的应用程序冻结【英文标题】:My App freezes when using Hive database in Flutter 【发布时间】:2021-05-31 21:46:26 【问题描述】:

我在 main.dart 文件中初始化并打开 Hive 数据库框并执行 crud 操作。当我重新加载应用程序时应用程序冻结,但当我删除 Hive.openBox() 后面的“await”关键字时取消冻结; 等待 Hive.openBox(ExpenseBoxName); 但是应用程序将停止执行数据库操作。

第三个 sn-p 是我执行 crud 操作的地方

【问题讨论】:

添加一些代码 sn-p 以了解您的问题 我已经做到了。 【参考方案1】:

像这样初始化数据库

void main() async

  WidgetsFlutterBinding.ensureInitialized();
  final document = await getApplicationDocumentsDirectory();
  Hive.init(document.path);
  await Hive.openBox<String>(datbase_name");
  runApp(MyApp());

【讨论】:

这与我在代码中所做的没有什么不同。 您找到解决方案了吗?例如使用隔离或其他替代方法?

以上是关于在 Flutter 中使用 Hive 数据库时我的应用程序冻结的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Hive Flutter 中获取索引的值?

Flutter & Hive - 如何在 Hive 中保存重新排序的列表

如何在 Flutter/Dart 中使用 Hive 框和索引以简单的方式将数据动态加载到 DataTable?

如何使用 JSON 格式备份和恢复 Flutter Hive 数据?

使用 Flutter 时我都有哪些存储数据的选项? (iOS和Android)[关闭]

Flutter - 使用新的应用程序版本删除或删除 Hive