我想在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秒检查一次停车场是否有一些空闲的地方,否则,应该向用户发送通知。
您有什么想法,如何进行这项工作?或您对此有何建议?
谢谢