【发布时间】:2021-07-30 08:52:41
【问题描述】:
我有 2 个函数调用 NTP 来获取本地日期时间。第一个使用Timer.periodic 像时钟一样工作,第二个用于获取用户点击按钮的时间。但是当我在第二个函数中显示时间时,它仍在运行Timer.periodic。如何避免这种情况?谢谢
我的代码:
Future<String> getNTPTime() async {
DateTime startDate = await NTP.now();
String currentDate = DateFormat('d MMMM yyyy').format(startDate);
String currentTime = DateFormat('kk : mm : ss').format(startDate);
print('NTP DateTime: $startDate');
if (mounted) {
setState(() {
_currentDate = currentDate;
_currentTime = currentTime;
});
}}
Future<String> getNTPTimeIn() async {
DateTime ntpTimeIn = await NTP.now();
String timeIn = DateFormat('kk : mm : ss').format(ntpTimeIn);
print('NTP DateTime: $ntpTimeIn');
if (mounted) {
setState(() {
_ntpTimeIn = timeIn;
});
}}
并在 initState 中调用它
@override
super.initState();
getNTPTime();
Timer.periodic(Duration(seconds: 1), (timer) => getNTPTime());
}
当我显示_ntpTimeIn 时,Timer.periodic 仍在运行。
【问题讨论】:
标签: flutter datetime timer ntp