iOS Flutter-关闭应用程序后Timer.periodic()无法运行

时间:2020-05-14 16:07:05

标签: ios flutter background

我想在Flutter应用中实施某种后台作业/检查,但是我注意到iOS上的这种奇怪行为。

当我启动计时器并仍在应用程序中时,一切正常,但是当我从应用程序返回主屏幕时,此回调执行了五次,然后停止。另一方面,即使我在主屏幕上,它也始终运行。

我在info.plist中添加了这个“权限”,但是经过几次尝试后它仍然停止。

<key>UIBackgroundModes</key>
    <array>
        <string>fetch</string>
        <string>processing</string>
        <string>remote-notification</string>
    </array>

我也尝试过该软件包(https://pub.dev/packages/workmanager),但对我不起作用。

这是我应该执行的功能

Timer.periodic(const Duration(seconds: 30), (_) async {
    var parkingLots = await DataService().getFreePlaces();

    if (parkingLots[parkingLotId] == 0) {
      print("full");
    } else {
      print("job is running");
    }

    print(parkingLots[parkingLotId]);
  });

基本上,应该每30秒检查一次停车场是否有一些空闲的地方,否则,应该向用户发送通知。

您有什么想法,如何进行这项工作?或您对此有何建议?

谢谢

0 个答案:

没有答案