定时器在背景颤振中不起作用

Timer is not worked in background flutter

当应用程序在 iOS 中进入后台时,不会打印此代码。

Timer.periodic(Duration(seconds: 1), (timer) { print('timer'); }

我需要将状态保存到数据库并在完成计时器后播放声音。但定时器计数器最小值为 1 分钟。所以这意味着至少 1 分钟后计时器将完成。该值将由用户设置。在此间隔期间,设备可能会被锁定。即使设备被锁定,应用程序也必须在完成定时器后保存状态。

运行 后台的 dart 代码不是一件容易的事。你可以阅读这个: https://docs.flutter.dev/development/packages-and-plugins/background-processes

或者可以查看这个插件: https://pub.dev/packages/flutter_background_service

在iOS应用程序中,使用flutter_background_service后,只有当应用程序进入后台播放音频时,计时器才会工作。所以在这种情况下,计时器必须与播放音频并行工作。不播放音频,定时器不在后台工作。因此,我尝试破解它。当定时器启动时,我以循环模式播放静音音频。我用一个多小时的计时器滴答调试它。这很完美。

为此我没有使用任何包。我只是启用背景模式并在背景模式下播放来自 Xcode:

的音频

我从 here.

收到静音