Flutter启动流程

2021-12-09  本文已影响0人  Shineyok

Flutter启动代码如下


void main() {

runApp(MyApp());

}

class MyApp extends StatelessWidget {

const MyApp({Key key}) : super(key: key);

@override

Widget build(BuildContext context) {

return Container();

}

}

查看runApp方法可发现


void runApp(Widget app) {

WidgetsFlutterBinding.ensureInitialized()

..scheduleAttachRootWidget(app)

..scheduleWarmUpFrame();

}

通过WidgetsFlutterBinding.ensureInitialized() 方法可发现,此方法用来初始化binding


static WidgetsBinding ensureInitialized() {

if (WidgetsBinding.instance == null)

WidgetsFlutterBinding();

return WidgetsBinding.instance;

}

由此可发现binding是一系列单例,在通过WidgetsFlutterBinding.ensureInitialized() 方法时,同时初始化了WidgetsFlutterBindingBindingBaseGestureBindingSchedulerBindingServicesBinding等。

上一篇 下一篇

猜你喜欢

热点阅读