页面抖动时,在所有功能之前调用哪个功能?

时间:2019-02-05 19:19:24

标签: android dart flutter

我是一名Android Studio开发人员,但现在在Flutter工作。在Android Studio中,活动开始时会调用Start和OnCreate函数。但是我想知道在Flutter中加载页面时首先调用哪个函数。甚至在initState()之前。

1 个答案:

答案 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之前进行一些操作。