如何根据设备时间设置 flutter 应用时间线?

How do I set flutter app timeline according to device time?

提问人:An Tran 提问时间:7/18/2022 更新时间:7/18/2022 访问量:387

问:

例如,我想在设备上的当前时间 2 小时后执行某些函数(我使用 Timer() 执行此操作)。但是我希望如果我将设备上的时间更改为超过 2 小时,这些功能将立即执行,而不是等待 2 小时。 请告诉我解决方案。 谢谢!

安卓 iOS Flutter 飞镖 手机

评论

0赞 Junsu Cho 7/18/2022
您可以在设置屏幕上更改时间。但是,如果应用的生命周期存在问题,则不会发生所需的行为。

答:

0赞 Kaushik Chandru 7/18/2022 #1

使用共享首选项包

https://pub.dev/packages/shared_preferences

当您希望启动计时器时,请获取日期时间并将其保存在共享首选项中

SharedPreferences _prefs = await SharedPreferences.getInstance();
_prefs.setString('startTime', DateTime.now().toString());

现在检查差异

DateTime startTime = DateTime.parse(_prefs.getString('startTime'));
if(startTime.add(Duration(hours:2)).isBefore(DateTime.now())
{
  print("2 hours are over");
}

如果您希望每秒检查一次,请将检查器添加到持续时间为 1 秒的定期计时器中