返回

带sqlite的dart-Flatter工作槽

发布时间:2022-04-28 00:48:29 161
# 数据库# 数据

我正在为SQLite数据库和workmanger构建一个金融应用程序,使用flatter和flatter_drift进行后台任务。

现在,我需要一种在后台运行插入查询的方法,即使应用程序每隔一段时间(如天/周/月)关闭一次。

我尝试了下面的内容,但抛出了一个我调用的错误AppDatabase多次初始化,这是真的,因为我无法使用getIt

到目前为止,我在代码方面所做的工作:

void callbackDispatcher() {
  configureInjection(Environment.prod);

  final ITransactionService transactionService = TransactionService(
    TransactionRepository(TransactionsDao(AppDatabase())),
    ContactPickerService(),
    ImagePickerService(),
  );

  Workmanager().executeTask(
    (task, inputData) async {
      switch (task) {
        case 'repeatedTransaction':
          // final String tId = inputData['string'];
          final String? id = inputData?['string'];

          optionOf(id).fold(
            () => null,
            (id) async {
              final Either<TransactionFailure, TransactionDomain?> t =
                  await transactionService.findTransactionById(id);

              t.fold(
                (l) => print('$l'),
                (transactionDomain) {
                  if (transactionDomain != null) {
                    transactionService.create(transactionDomain.copyWith(
                        date: TransactionDate(DateTime.now())));
                  }
                },
              );
            },
          );

          break;
        default:
      } //simpleTask will be emitted here.
      return Future.value(true);
    },
  );
}
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像