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? c = _controller;
// App state changed before we got the chance to initialize.
if (c == null || !c.value.isInitialized) {
return;
}
if (state == AppLifecycleState.inactive) {
c.dispose();
} else if (state == AppLifecycleState.resumed && !c.value.isInitialized) {
// Drop initialize when the controller has been already initialized.
// This will typically resolve the lifecycle issue on iOS when permissions
// are requested for the first time.
initCameras(currentCamera);
}
}