【问题标题】:Flutter run Dart function in the backgroundFlutter 在后台运行 Dart 功能
【发布时间】:2021-04-14 23:17:24
【问题描述】:

我有一个飞镖函数someFunction 需要几分钟才能运行(它有大量的网络请求等待它)。目前,当我运行该功能并将我的应用程序移至后台时,似乎执行了在离开应用程序之前排队的请求,但随后该功能停止,并且当我返回应用程序时也不会恢复。我想做的是让函数在后台运行直到完成,即使应用程序不在前台,并且如果应用程序不在前台,也在函数完成后发送通知。

我查看了一些解决方案,例如后台获取插件和隔离,但除非我遗漏了某些东西,否则它们似乎仅适用于本机代码或定期后台任务。我正在寻找的是一个无论如何都运行一次并返回主线程并返回它可以做出反应的结果的任务

函数的非 Dart 依赖项,如果这是相关的:

import 'package:http/http.dart' as http;
import 'package:shared_preferences/shared_preferences.dart';
import 'package:firebase_crashlytics/firebase_crashlytics.dart';
import 'package:cloud_firestore/cloud_firestore.dart';

【问题讨论】:

    标签: flutter dart background-process


    【解决方案1】:

    你试过这个包,workmanager 和 WidgetsBindingObserver(应用程序生命周期)吗?

      @override
      void didChangeAppLifecycleState(AppLifecycleState state) {
        //Do whatever you want in background
        if (state == AppLifecycleState.paused ||
            state == AppLifecycleState.detached) {
        }
      }
    

    【讨论】:

      猜你喜欢
      • 2021-09-04
      • 2020-08-06
      • 1970-01-01
      • 2021-02-26
      • 2019-01-07
      • 1970-01-01
      • 2020-10-11
      • 2022-08-05
      • 2020-05-01
      相关资源
      最近更新 更多