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

Flutter:应用程序重启后无法从 Hive 检索数据

如何解决Flutter:应用程序重启后无法从 Hive 检索数据

一切正常,直到我重新启动应用程序(关闭应用程序并打开它)并且看不到以前保存的数据但如果我选中框状态它已打开和空。我做错了什么吗?

  • 在真机小米红米4A上运行(实际出现问题 也适用于 Iphone 设备)
  • 在 Mac M1 上工作
  • Flutter(通道稳定,2.2.2,在 macOS 11.2 20D64 darwin-arm 上, 语言环境 ru)
  • 我在 github network security config 中发现了“问题”,但没有任何用处

main.dart

void main() async {
  // init hive
  WidgetsFlutterBinding.ensureInitialized();
  await lds.init();
  // init app
  runApp(MyApp());
}

hive 初始化文件

Future<void> init() async {
  final appDocumentDirectory = await path.getApplicationSupportDirectory();
  Hive.init(appDocumentDirectory.path);

  // registering entities
  Hive.registeradapter(ItemmodelAdapter());
}

保存和加载函数

class ItemLocalDataSource {
  static const String Box_ITEMS = 'item-models';

  Future<List<Itemmodel>> getLocalItems() async {
    await Hive.openBox(Box_ITEMS);
    final Box = Hive.Box(Box_ITEMS);
    final items = Box.get(0) as List<Itemmodel>;
    return items;
  }

  Future<void> setLocalItems(List<Itemmodel> items) async {
    await Hive.openBox(Box_ITEMS);
    final Box = Hive.Box(Box_ITEMS);
    Box.put(0,items);
    print('saved $items');
  }
}

我在 pubspec.yaml 中使用的包版本

  # hive (local data storage)
  hive: ^1.4.4+1
dev_dependencies:
  Flutter_test:
    sdk: Flutter
  # hive adapter generator
  hive_generator: ^0.8.2
  # build runner
  build_runner:

解决方法

你处理了初始化的方法吗?

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