flutter - Flutter:计时器无法停止
问题描述
我的代码如下。我试着关闭这个计时器。计时器无法关闭。我能做些什么来关闭这个计时器?我需要立即帮助。
Timer timerHttp;
@override
void initState() {
timerHttp = Timer.periodic(new Duration(seconds: 10), (timerHttp) async {
print("girdi yine asdadasd");
final response = await http.get(
"http://xxxxxxxxxxxxxxxxxxxxxxxxx",
);
if (response.statusCode == 200) {
setState(() {
var responseJson = json.decode(response.body);
cm100Datas = responseJson;
saat = [];
l1voltState = [];
l2voltState = [];
l3voltState = [];
l1akimState = [];
l2akimState = [];
l3akimState = [];
for (var item in cm100Datas) {
saat.add(saatFormat.parse(item["saat"]));
l1voltState.add(double.parse(item["l1volt"]));
l2voltState.add(double.parse(item["l2volt"]));
l3voltState.add(double.parse(item["l3volt"]));
l1akimState.add(double.parse(item["l1akim"]));
l2akimState.add(double.parse(item["l2akim"]));
l3akimState.add(double.parse(item["l3akim"]));
}
});
if (this.mounted) {
setState(() {
loadingHttp = false;
});
}
}
});
super.initState();
}
@override
void dispose() {
timerHttp.cancel();
super.dispose();
}
它给出了以下错误。
════════ 小部件库捕获的异常═════════════════════════════␕══以下最终确定小部件树时引发了断言:'package:flutter/src/widgets/framework.dart':断言失败:第 4263 行 pos 12:'_debugLifecycleState != _ElementLifecycle.defunct':不正确。
解决方案
这个函数disconnectFromServer();
产生了一些错误。这个错误已经影响了计时器。
@override
void dispose() {
disconnectFromServer();
timerHttp.cancel();
super.dispose();
}
我通过更改此功能位置解决了这个问题。像下面这样。
@override
void dispose() {
timerHttp.cancel();
disconnectFromServer();
super.dispose();
}
推荐阅读
- c++ - 如何在 c++ builder 6 中从应用程序源创建 dll?
- .net-core - 上传文件 .NET Core Web API 的问题
- php - 如何在选择数据的任何序列化字段的数组键上添加 where 子句?
- hyperledger-composer - 如何将多个脚本文件添加到 Hyperledger Composer Playground
- elasticsearch - 忽略“pipelines.yml”文件,因为指定了模块或命令行选项
- cmake - 从 Qt Creator (4.8) 文件系统视图中隐藏非源文件
- azure - 如何将 Office 365 域中的人员列表添加到 PowerShell 中的 Azure 组?
- javascript - SetInterval - 到达下一分钟时更改间隔
- vhdl - VHDL 中的多路复用器 8x1
- java - 如何将“spring boot 2.1 with elasticsearch 6.6”与集群节点“https”连接起来?