Flutter 系列笔记(2)组件和应用生命周期

除了常见的组件生命周期外,应用本身也存在生命周期

Stateless 无状态组件

  1. constructor
  2. build()
HxkVhQ

Stateful 有状态组件

  1. constructor
  2. initState() 初始化
  3. build()
  4. setState() 改变状态
  5. didUpdateWidget() 更新状态
  6. build()
  7. dispose() 销毁
djvjMy

App 应用

  1. inactive 刚进入后台
  2. paused 已进入后台
  3. resumed 切换到前台
  4. suspending 被清除前

要使用 App 生命周期监听:

  • 组件引用 mixin
  • 添加 Observer
class _HomePageState extends State<HomePage> with WidgetsBindingObserver {
...

  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    print(state);
  }

  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addObserver(this);
  }

  @override
  void dispose() {
    super.dispose();
    WidgetsBinding.instance.removeObserver(this);
  }

...
}