代码内容并不重要。只有一个问题:当我想离开此页面时,计时器无法处理。当我离开此页面时,sendMessage("message");
功能继续运行。有什么选项可以处理这个计时器吗?
Timer timer;
@override
void initState() {
super.initState();
timer = Timer.periodic(new Duration(seconds: 5), (timer) async {
setState(() {
unicode++;
unicodeString = unicode.toString();
if (unicodeString.length < 6) {
int different = 6 - unicodeString.length;
for (var i = 0; i < different; i++) {
unicodeString = "0" + unicodeString;
}
}
sendMessage("meesage");
showSnackBarWithKey("Message Sended !");
});
});
}
@override
void dispose() {
timer.cancel();
super.dispose();
}
Run Code Online (Sandbox Code Playgroud)
错误如下。
小部件库捕获异常在完成小部件树时抛出以下断言:'package:flutter/src/widgets/framework.dart': 失败的断言: line 4182 pos 12: '_debugLifecycleState != _ElementLifecycle.defunct': is not true 。该断言要么表明框架本身存在错误,要么我们应该在此错误消息中提供更多信息,以帮助您确定并修复根本原因。无论哪种情况,请通过在 GitHub 上提交错误来报告此断言:
我使用了dispose定时器,但它不能dispose定时器。我无法解决这个问题。请帮助。
运行代码后我发现问题,主要问题是,当小部件从父树中完全删除时,会在小部件上调用 dispose 。
所以当你路由新页面时,
对于代码,请尝试这个。(主要部分是PushReplacement我用它来导航)
Navigator.pushReplacement(
context, MaterialPageRoute(builder: (context) => SplashScreen()));
Run Code Online (Sandbox Code Playgroud)
最终代码是,
class TimerButton extends StatefulWidget {
@override
_TimerButtonState createState() => _TimerButtonState();
}
class _TimerButtonState extends State<TimerButton> {
Timer _timer;
@override
void initState() {
super.initState();
_timer = Timer.periodic(new Duration(seconds: 5), (timer) async{
setState(() {
/* unicode++;
unicodeString = unicode.toString();
if (unicodeString.length < 6) {
int different = 6 - unicodeString.length;
for (var i = 0; i < different; i++) {
unicodeString = "0" + unicodeString;
}
}*/
sendMessage("meesage");
showSnackBarWithKey("Message Sended !");
});
});
}
@override
void dispose() {
_timer.cancel();
super.dispose();
}
@override
Widget build(BuildContext context) {
// TODO: implement build
return RaisedButton(
onPressed: (){
Navigator.pushReplacement(
context, MaterialPageRoute(builder: (context) => SplashScreen()));
},
child: Text("data"),
);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4203 次 |
最近记录: |