Flutter can';t在应用程序退出时调用dispose()方法
我想在应用程序退出时调用一个方法保存在SharedReferences中 我试过了,但没用Flutter can';t在应用程序退出时调用dispose()方法,flutter,dart,Flutter,Dart,我想在应用程序退出时调用一个方法保存在SharedReferences中 我试过了,但没用 @override void dispose() { print("exit"); _subscription.cancel(); saveCounter(); super.dispose(); } Future<void> saveCounter() async{ final prefs = await SharedPreferences.getInstanc
@override
void dispose() {
print("exit");
_subscription.cancel();
saveCounter();
super.dispose();
}
Future<void> saveCounter() async{
final prefs = await SharedPreferences.getInstance();
await prefs.setInt('startNumber', _steps);
}
@覆盖
无效处置(){
打印(“退出”);
_订阅。取消();
saveCounter();
super.dispose();
}
Future saveCounter()异步{
final prefs=wait SharedPreferences.getInstance();
等待prefs.setInt('startNumber',_步数);
}
- 我们可以使用
WillPopScope
- 我们可以在函数中执行saveCounter
- 确保它将返回包装在
Future.value()中的true
类WillPopScreen扩展了无状态小部件{
Future saveCounter()异步{
final prefs=wait SharedPreferences.getInstance();//我们可以保存状态
等待prefs.setInt('startNumber',_步数);
}
Future onCloseEvent()异步{
等待saveCounter();
return Future.value(true);//我们不能设置“return true”
}
@凌驾
小部件构建(构建上下文){
返回式示波器(
onWillPop:onCloseEvent,//将中断我们的脚手架解雇
孩子:脚手架(
appBar:appBar(
标题:文本(“将弹出中断”),
),
正文:中(
子项:文本(“关闭时执行方法”),
),
),
);
}
}
全面运作回购
你可以在这里自己建造
演示
您将处置方法放在哪里?它在statefulwidget上吗?@ejabu是的,它的statefulwidget类返回框架不工作,我希望它在有人关闭服务器时运行app@suhaibsalem运气好吗?我也在寻找同样的。从最近打开的应用程序托盘中删除/关闭应用程序时如何释放资源