dart - 如何在 Flutter 中调度后台任务?

我一直在寻找这个,但没有找到任何包或在 Flutter 中安排后台任务的方法。像在 Android 中有 WorkManager,AlarmManager

我知道我可以使用 MethodChannel 访问这些类,但我想要一些适用于 iOS 和 Android 的东西。

(移动框架没有调度后台任务的能力非常令人失望)。

最佳答案

有一个Medium blogpost这解释了如何做到这一点。
但是我们认为设置起来太复杂了,所以碰巧我们创建了一个 plugin这可以帮助你。

//Provide a top level function or static function.
//This function will be called by Android and will return the value you provided when you registered the task.
//See below
void callbackDispatcher() {
  Workmanager.executeTask((task) {
    print("Native echoed: $task");
    return Future.value(true);
  });
}

Workmanager.initialize(
    callbackDispatcher, //the top level function.
    isInDebugMode: true //If enabled it will post a notification whenever the job is running. Handy for debugging jobs
)

我们支持 Android 的 Workmanager 和 iOS performFetch


目前它仅适用于 Android 项目,但我们很快就会关注 iOS。
当它可用时,我会更新这个答案。


我们现在也支持 iOS。它仍处于早期 alpha 阶段,但请试一试。
我们写了一篇免费的 Medium也发帖。

https://stackoverflow.com/questions/51706265/

相关文章:

flutter - 如何在 Flutter 中创建带有圆角的模态底页?

dart - 在所有页面 Flutter 中持久化 AppBar Drawer

flutter - 如何在 Dart 中对 Textfield onChange 进行去抖动?

flutter - 在 Flutter 中使用 SafeArea

dart - 如何在 flutter 的另一个有状态小部件中访问在一个有状态小部件中创建的对象

dart - 从 Flutter 记录大字符串

dart - 将带参数的函数传递给 VoidCallback

flutter - 单击屏幕上的文本字段/任何位置后,如何在 flutter 上隐藏软输入键盘?

flutter - Scoped Model、BLoC 模式、StreamBuilder 和 Inh

android-studio - 使用 Android Studio 自动在右括号后插入注释