首页 > 解决方案 > 当页面在颤动中加载时,在所有函数之前调用哪个函数?

问题描述

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

标签: androiddartflutter

解决方案


Flutter 中的基本事件序列实际上很容易理解,因为它们都在代码中。假设您有一个非常简单的应用程序,只有一个 Stateful Widget。

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 特定的事情首先发生。他们加载 dart 引擎并查找void main()函数(尽管您不需要显式地将 void 作为返回值)。

调用 main 函数,其中runApp使用MyApp. 请注意,MyApp这里没有构造函数,但可以。

然后,flutter 接管并做任何需要做的事情来开始(runApp如果你想了解更多细节,请查看)。最终,MyApp.createState被调用,其中创建了一个新的实例MyAppState。然后,最后,initState被调用。

需要注意的一个有趣的事情是 main 函数实际上并不需要立即调用runApp。可以使 main 函数异步,并让它在调用 runApp 之前执行一些操作。


推荐阅读