有人可以向我解释热重装和重新启动以及何时我不需要这样做(例如需要执行重建的代码更改)以及何时可以做到。如果不确定不确定所做的更改是否会影响结果,则在Flutter Web和Mobile上进行调试时,我将全部关闭并重新构建项目...“快速构建”这两种模式中的一些见解“会让我对在调试过程中单击哪个按钮更有信心;)
IDE:Android Studio 3.5.1
答案 0 :(得分:0)
如果来自Flutter for Android Studio和IntelliJ的官方文档中,则为
。
热重装与热重装
热重装通过将更新的源代码文件注入正在运行的Dart VM(虚拟机)中来进行。这不仅包括添加新类,还包括向现有类添加方法和字段,以及更改现有功能。但是,某些类型的代码更改无法热重新加载:
全局变量初始化程序
静态字段初始化程序
应用程序的main()方法
对于这些更改,您可以完全重新启动应用程序,而不必结束调试会话。
发件人:https://flutter.dev/docs/development/tools/android-studio#hot-reload-vs-hot-restart
这是另一种解释。
热重装:
热重载功能可快速编译文件中新添加的代码,并将代码发送到Dart虚拟机。更新完Code Dart虚拟机后,请使用小部件更新应用程序UI。热重启所需的时间少于热重启所需的时间。热重加载也有一个缺点,如果您在应用程序中使用状态,则热重加载会保留状态,这样它们就不会在热重加载时将我们的设置更新为默认值。
热重启:
热重启与热重启有很大不同。在热重启中,它会破坏保留状态值并将其设置为默认值。因此,如果您在应用程序中使用“状态”值,则在每次热重启后,开发人员都会获取完全编译的应用程序,并且所有状态都将设置为其默认值。应用窗口小部件树已使用新键入的代码完全重建。热重启比热重启花费的时间要长得多。
我从https://flutter-examples.com/difference-between-hot-reload-and-hot-restart-in-flutter-dart/
得到了这种解释。答案 1 :(得分:0)
如果热重装或热重启动不起作用 只需运行命令flutter运行,多数民众赞成将与命令行正确工作
答案 2 :(得分:0)
热重载(<1s),也称为“有状态热重载”,应尽可能多地使用。您需要记住在这3种情况下,应该进行热重启(〜10s)并丢失应用程序的状态(当前变量):
一个例子:
int globalVariableNeedsHotRestart = 5; // <-- A global variable.
class StackOverflowWidget {
static const staticFieldInitialized = Text("Hello"); // <-- Using the static keyword
}
main(List<String> args) {
print(
"This won't run until a hot restart. A hot reload won't do it."); // <-- Any code in main method
}