在我的项目中,如果发生某些事件(检测到信标),则仅在应用程序在后台的情况下显示本地推送通知。 因此,我需要正确检测应用程序是在前台还是在后台。我用于此WidgetBinding:
AppLifecycleState _appState = AppLifecycleState.resumed;
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
}
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
_appState = state;
}
问题在于,在IOS上显示系统警报(例如,某些权限的授权)会导致状态更改为.inactive,并且只有在解除警报后,状态才会更改为.resum。 在这种情况下,我会在显示系统警报但处于前台的应用上显示本地通知。