didChangeAppLifecycleState method
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:
- AppLifecycleListener, an alternative API for responding to application lifecycle changes.
Implementation
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
final CameraController? cameraCtrl = cameraController;
// App state changed before we got the chance to initialize.
if (cameraCtrl == null || !cameraCtrl.value.isInitialized) {
return;
}
if (state == AppLifecycleState.inactive && !isPickingPhoto.value) {
isInActive(true);
flashMode.value = FlashMode.off;
cameraCtrl.setFlashMode(FlashMode.off);
cameraCtrl.dispose();
update(['camera']);
} else if (state == AppLifecycleState.resumed && !isPickingPhoto.value) {
isInActive(false);
onNewCameraSelected(cameraCtrl.description);
}
}