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) 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;
}
}