微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Flutter 应用程序中关闭 Store 实例的最佳做法是什么?

如何解决在 Flutter 应用程序中关闭 Store 实例的最佳做法是什么?

我正在使用 ObjectBox 数据库构建 Flutter 应用程序。

应用程序在启动时调用 openStore();,并将 Store 实例保存在一个单例类中,以便我可以从任何地方访问它。

但我不确定什么时候调用 store.close();

在 iOS 中,我们可以使用 applicationWillTerminate(_:)

在应用程序终止前立即执行代码

不幸的是,Flutter 没有为我们提供这样的东西。

我在预期寿命最长的 StatefulWidget 中尝试了以下代码,但有时它会更快处理并且应用无法访问数据库

@override
void dispose() {
  StoreHelper().store?.close();
  super.dispose();
}

我的问题是...

  1. 调用 store.close() 的最佳做法是什么?
  2. 如果我不关闭商店会怎样?我的应用会失去数据持久性吗?

解决方法

我觉得你在做什么。您可以将其稍微更改为 StoreHelper().close(),这也将清除将其 Store 引用设置为 null,在这种情况下,如果应用程序的其他部分仍然尝试访问,您可以处理(认识到它已关闭)或重新打开)。

此外,在大多数情况下,您应该在没有明确关闭商店的情况下离开。除非您正在执行(许多)后台写入操作,在这种情况下,您应该尝试至少等待它在 dispose() 中完成。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。