在ios后台不工作的扑动工作管理器



我从Github下载了workmanager库。然后,我在工作管理器的回调调度程序中添加了一些代码。我包含了下面的代码。然后我用Xcode调试。

触发"Background Fetch"在Xcode中,并最小化应用程序-工作管理器回调执行-通过显示一个本地通知。但是当我关闭应用程序(终止,从最近删除)时,它不会在后台运行。

当应用程序被最小化时,应用程序工作正常。但是不能在后台工作。

我已经用发布版本测试过了。

我现在该怎么办?

我在回调调度器

中添加了这段代码
for (int i = 0; i < 1000; i++) {
await Future.delayed(const Duration(seconds: 5));
AwesomeNotifications().createNotification(
content: NotificationContent(
id: 10,
channelKey: 'basic_channel',
title: i.toString(),
body: 'Workmanager '));
print("background $i");
}
await Future.delayed(const Duration(minutes: 15));

我已经在此代码之前初始化了通知包。

不要指望它在应用程序被终止(从应用切换器中被取消)时工作。只有当应用程序在后台时,registerOneOffTask()才会可靠地工作。

问题是,iOS决定何时从队列中调度任务是一个好时机。考虑到电池寿命、低功耗模式是否开启、屏幕是否处于唤醒状态,甚至iOS的新ML模型也会从使用行为中学习——你无法可靠地预测你的任务何时会在后台执行。

您正在从回调调度程序发出通知。你必须配置一个通知服务器来发送远程通知到你的设备,而不是使用本地通知。

相关内容

最新更新