【问题标题】:Timer is not worked in background flutter定时器在后台颤振中不起作用
【发布时间】:2022-01-01 15:58:57
【问题描述】:

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

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

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

【问题讨论】:

    标签: ios flutter timer background


    【解决方案1】:

    在后台运行 dart 代码并非易事。您可以阅读以下内容: https://docs.flutter.dev/development/packages-and-plugins/background-processes

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

    【讨论】:

    • 非常感谢耶利弗。用flutter_background_service解决。
    • @Shohin 如果您觉得有用,请将其标记为已接受的答案
    【解决方案2】:

    在 iOS 应用程序中,使用 flutter_background_service 后,定时器仅在应用程序进入后台播放音频时工作。所以在这种情况下,计时器必须与并行播放音频一起工作。如果不播放音频,则计时器不会在后台工作。因此,我试图破解这个。当计时器启动时,我在循环模式下播放静音音频。我用一个多小时的计时器来调试这个。这是完美的工作。

    为此,我不使用任何软件包。我只是从 Xcode 启用后台模式并在后台模式下播放音频:

    我收到来自here 的静音声音。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-05
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 2019-11-03
      • 2020-03-07
      • 2021-09-19
      • 2021-07-07
      相关资源
      最近更新 更多