didChangeAppLifecycleState method

  1. @override
void didChangeAppLifecycleState(
  1. AppLifecycleState state
)
override

Called when the system puts the app in the background or returns the app to the foreground.

An example of implementing this method is provided in the class-level documentation for the WidgetsBindingObserver class.

This method exposes notifications from SystemChannels.lifecycle.

See also:

Implementation

@override
void didChangeAppLifecycleState(AppLifecycleState state) async {
  super.didChangeAppLifecycleState(state);
  var hasPermissions = await CamerawesomePlugin.checkPermissions();
  if (!hasPermissions) {
    return;
  }
  switch (state) {
    case AppLifecycleState.resumed:
      if (!started) {
        try {
          await CamerawesomePlugin.start();
          started = true;
          if (mounted) {
            setState(() {});
          }
        } catch (err) {
          debugPrint("Camerawesome start after resume state failed: $err");
        }
      }
      break;
    case AppLifecycleState.inactive:
    case AppLifecycleState.paused:
    case AppLifecycleState.detached:
      if (started) {
        CamerawesomePlugin.stop().then((value) => started = false);
      }
      break;
  }
}