Flutter   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了颤动:如何强制重启应用程序(在生产模式下)?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在生产模式中,有没有办法强制完全重启应用程序(我不是在讨论开发时的热重载!).

实际使用案例

>在初始化过程中,应用程序检测到没有网络连接.缺乏网络连接可能阻止了正确的启动(例如加载外部资源,如JSON文件……).
>在初始握手期间,需要下载一些重要资源的新版本(更新类型).

在这两种用例中,我希望应用程序继续完全重启,而不是必须在ApplicationState级别构建复杂的逻辑.

非常感谢您的提示.

解决方法

您可以将整个应用程序包装到statefulwidget中.当您想重新启动应用程序时,请使用具有不同密钥的子项重建该statefulwidget.

这会让你失去你的应用程序的整个状态.

@H_489_23@import 'package:Flutter/material.dart'; void main() { runApp(new RestartWidget( child: // new MaterialApp,)); } class RestartWidget extends StatefulWidget { final Widget child; RestartWidget({this.chilD}); static restartApp(BuildContext context) { final _RestartWidgetState state = context.ancestorStateOfType(const TypeMatcher<_RestartWidgetState>()); state.restartApp(); } @override _RestartWidgetState createState() => new _RestartWidgetState(); } class _RestartWidgetState extends State<RestartWidget> { Key key = new UniqueKey(); void restartApp() { this.setState(() { key = new UniqueKey(); }); } @override Widget build(BuildContext context) { return new Container( key: key,child: widget.child,); } }

在此示例中,您可以使用RestartWidget.restartApp(context)从任何位置重置您的应用程序.

大佬总结

以上是大佬教程为你收集整理的颤动:如何强制重启应用程序(在生产模式下)?全部内容,希望文章能够帮你解决颤动:如何强制重启应用程序(在生产模式下)?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。