解决 Flutter ApplifeCycleState is not executing correctly (couldn't able to detect the lifecycle of the app)

16 min read
import 'package:flutter/widgets.dart';

import 'package:flutter/material.dart';


void main(){
  runApp(
    MaterialApp(
      home: Home(),
    )
  );
}


class Home extends StatefulWidget {
  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> with WidgetsBindingObserver{
  AppLifecycleState state;
  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addObserver(this);

  }
  @override
  void dispose() {

    WidgetsBinding.instance.removeObserver(this);

    super.dispose();
  }

  void didChangeAppLifeCycleState(AppLifecycleState appLifecycleState) {
    state = appLifecycleState;
    print(appLifecycleState);
    print(":::::::");
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        child: Center(
          child:Text("hi")
        ),
      ),
    );
  }
}

还需要监听生命周期变化

class _HomeState extends State<Home> with WidgetsBindingObserver {

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