Flutter中Workmanager无isScheduledByUniqueName方法报错求助
解决Workmanager中
isScheduledByUniqueName未定义的错误 - 错误原因:
isScheduledByUniqueName并非workmanager库提供的官方方法,当前版本的库中不存在该方法定义。 - 正确替代方案:使用库内置的
getWorkInfosByUniqueName方法,通过返回的WorkInfo列表判断任务是否处于有效调度状态。
修改后的代码示例:
child: Text("isscheduled (Android)"), onPressed: Platform.isAndroid ? () async { final workInfos = await Workmanager().getWorkInfosByUniqueName( simplePeriodicTask, ); // 通过WorkInfo的状态判断任务是否在调度中 final isScheduled = workInfos != null && workInfos.isNotEmpty && workInfos.any((info) => info.state == WorkInfo.State.enqueued || info.state == WorkInfo.State.running); print('isscheduled = $isScheduled'); } : null), SizedBox(height: 8),
- 补充说明:
getWorkInfosByUniqueName会返回对应唯一名称的所有WorkInfo实例,可通过state属性判断任务当前状态:WorkInfo.State.enqueued:任务已入队等待执行WorkInfo.State.running:任务正在执行WorkInfo.State.succeeded:任务执行完成WorkInfo.State.failed:任务执行失败WorkInfo.State.cancelled:任务已取消
内容的提问来源于stack exchange,提问作者Mahendra Telure
相关产品推荐
相关产品推荐

