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) {
  if (widget.pauseUponEnteringBackgroundMode) {
    if ([
      AppLifecycleState.paused,
      AppLifecycleState.detached,
    ].contains(state)) {
      if (widget.controller.player.state.playing) {
        _pauseDueToPauseUponEnteringBackgroundMode = true;
        widget.controller.player.pause();
      }
    } else {
      if (widget.resumeUponEnteringForegroundMode &&
          _pauseDueToPauseUponEnteringBackgroundMode) {
        _pauseDueToPauseUponEnteringBackgroundMode = false;
        widget.controller.player.play();
      }
    }
  }
}