尝试热重载 Flutter 应用程序会重新启动整个应用程序

Posted

技术标签:

【中文标题】尝试热重载 Flutter 应用程序会重新启动整个应用程序【英文标题】:Attempting to hot reload Flutter app restarts whole app 【发布时间】:2019-12-22 07:13:48 【问题描述】:

我正在开发一个 Flutter 应用程序,我注意到每当我保存我的应用程序以查看更新的更改时,我的整个应用程序都会重新加载。我希望我打开的页面可以热重新加载,并对其进行新的更改。

我认为我的小部件树的组织方式可能会对此产生影响。我的整个应用程序都包含在一个在启动时运行的小部件中,该小部件初始化为 ServicesLoadingState。然后,在服务完成启动后(在 BLoC 中),它会产生一个 ServicesReadyState,然后绘制我的所有小部件。我认为当我热重新加载时,最上面的小部件的状态会切换回 ServicesLoadingState,重新加载服务,并向我展示我正在经历的行为。

我试过谷歌搜索“flutter hot reload restarts app”,但我没有找到任何关于如何防止这种情况的好提示。如何阻止热重载重新启动整个应用程序?

【问题讨论】:

可能相关:***.com/questions/52249578/… 我面临着类似的问题。就我而言,我在我的小部件中使用Provider 【参考方案1】:

您能否检查一下您的 MaterialApp 中是否使用了全局 navigatorKey

我遇到了同样的问题,我发现这是由于我的 MaterialApp 中的 navigatorKey。

所以当我处于开发模式时,我会评论 navigatorKey 属性。

【讨论】:

请将其表述为有条件的解释性答案,以避免给人以澄清问题而不是回答的印象(应该使用评论而不是答案,比较meta.stackexchange.com/questions/214173/…)。例如像“如果你的问题是......那么解决方案是......因为......。” 对我有用,我在我的主页面上评论了 navigatorKey。谢谢

以上是关于尝试热重载 Flutter 应用程序会重新启动整个应用程序的主要内容,如果未能解决你的问题,请参考以下文章

需要进行热重载才能运行应用程序

Flutter 热重载不适用于 VSCode 中的自动保存

如何检测 Flutter App 代码中的热重载?

如何解决flutter中的性能和热重载问题?

使用提供程序包 FLUTTER 关闭应用程序后保存状态

调试时 Flutter VS Code 中的热重启(以前是完全重启)