Flutter WorkManager 插件和 SQLite 问题

问题描述 投票:0回答:2

也许有人可以分享一些代码示例或解释一下。我使用 WorkManger Flutter 插件。这个想法是创建后台任务来更新设备上的 sqlite 数据库。插件可以工作,它正在执行任务,但 DB 中没有更新,如果我运行直接与 DB 一起使用的方法,它们就会工作,因此方法没有问题。看起来我好像错过了什么。 WorkManager 只是不想与 DB 一起工作

flutter sqflite flutter-workmanager
2个回答
0
投票

像我在这里所做的那样初始化数据库最终对我有用(FlutterFlow 自定义操作):

void callbackDispatcher() {
  Workmanager().executeTask((task, inputData) async {
    print('callbackDispatcher');
    switch (task) {
      case simpleTaskKey:
        _database = await initializeDatabaseFromDbFile(
          'mydatabase',
          'MyDB01.db',
        );

-1
投票

如果您仍然面临这个问题,如果您可以分享问题中的代码示例,将会很有帮助。

同时,您可以在后台任务可执行代码中检查是否正在建立或打开数据库连接。通常看起来像这样:

@pragma('vm:entry-point')
 void callbackDispatcher() {
  Workmanager().executeTask((task, inputData) {
    debugPrint(
      "Native called background task: $inputData",
    );
    /// open your database connection here
    var db = await openDatabase('my_db.db');
    return Future.value(true);
  });
}

如果这不能解决问题,请务必分享更多信息。 谢谢

© www.soinside.com 2019 - 2024. All rights reserved.