问题描述
我试图通过按钮触发一些后台任务,并且发现flutter的workmanager插件非常有气质。它偶尔会起作用,但是之间相差无几。
我正在使用此基本应用进行测试:
import 'package:flutter/material.dart';
import 'package:workmanager/workmanager.dart';
const task1 = "simpleTask";
void main() {
WidgetsFlutterBinding.ensureInitialized();
Workmanager.initialize(
callbackDispatcher,isInDebugMode: true,);
//Workmanager.registerPeriodicTask("1",task1,initialDelay: Duration(seconds: 10),frequency: Duration(minutes: 15));
//Workmanager.registerOneOffTask("1",initialDelay: Duration(seconds: 5));
runApp(MaterialApp(
home: Scaffold(
body: Container(
color: Colors.blueAccent[400],child: Center(
child: RaisedButton(
child: Text("create notification in five seconds"),onPressed: () {
Workmanager.registerOneOffTask("1",initialDelay: Duration(seconds: 5));
},),));}
void callbackDispatcher() {
Workmanager.executeTask((task,inputData) {
print("it's doing the task");
switch (task) {
case task1:
print(task1);
break;
case Workmanager.iOSBackgroundTask:
print("iOS background fetch delegate ran");
break;
}
return Future.value(true);
});
}
我试图通过按钮触发后台任务,因为在注释掉这两行之前,它没有像我之前那样工作。我也从来没有做过Workmanager.registerPeriodicTask
工作。这可能是因为最初的延迟并没有在结束时启动第一个任务,而是启动了15分钟的计时器直到第一个任务开始,但是由于我必须等待至少15分钟,因此测试起来非常痛苦。
是否缺少命令或缺少的await
或其他内容?
编辑: 我刚刚在AndroidStudio的Android模拟器上对其进行了测试,并且所有通知在一次性和定期任务中都可以正常工作,因此我认为这是一件好事与手机有关。不过,我不太确定该怎么做。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)