我一直在寻找这个,但没有找到任何包或在 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 - 将带参数的函数传递给 VoidCallback
flutter - 单击屏幕上的文本字段/任何位置后,如何在 flutter 上隐藏软输入键盘?