我是一名Android Studio开发人员,但现在在Flutter工作。在Android Studio中,活动开始时会调用Start和OnCreate函数。但是我想知道在Flutter中加载页面时首先调用哪个函数。甚至在initState()之前。
答案 0 :(得分:0)
在flutter中,事件的基本顺序实际上很容易遵循,因为它们在代码中都已存在。假设您有一个非常简单的应用程序,只有一个有状态的小组件。
import 'package:flutter/material.dart';
main() => runApp(MyApp());
class MyApp extends StatefulWidget {
@override
MyAppState createState() {
return new MyAppState();
}
}
class MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Container()
),
);
}
}
当应用首次启动时,某些特定于android或iOS的事情会首先发生。他们加载了飞镖引擎,并寻找void main()
函数(尽管您不需要显式使用void作为返回值)。
将调用main函数,其中使用runApp
的实例调用MyApp
。请注意,MyApp
这里没有构造函数,但是可以。
然后,flutter接管了一切,并开始做它需要做的一切(如果需要更多详细信息,请查看runApp
)。最终,调用MyApp.createState
,在其中创建MyAppState
的新实例。然后,最后调用initState
。
需要注意的一个有趣事情是,main函数实际上不需要立即调用runApp
。可以使主函数异步,并使其在调用runApp之前进行一些操作。