如何解决使用Workmanager插件的后台任务无法正常运行
我试图通过按钮触发一些后台任务,并且发现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 举报,一经查实,本站将立刻删除。