如何检测应用程序何时在颤振中最小化

Mit*_*tch 8 flutter

有没有办法检测应用程序何时最小化?简单地使用WidgetsBindingObserverpaused事件是行不通的,因为它与用户关闭屏幕/手机锁时无法区分。请注意,我需要它同时适用于 android 和 ios。

我正在做的事情的一些背景。在应用程序中,我正在运行一个计时器。如果用户最小化应用程序(例如将其手机用于其他用途),我想停止此计时器。但是,如果用户关闭屏幕/锁定屏幕,我希望计时器继续。

L. *_*emi 5

我建议看一下这个包:is_lock_screen

正如描述所示

用于确定应用程序是否由于锁定屏幕或离开应用程序而进入后台。

我会尝试这样做:

@override
void didChangeAppLifecycleState(AppLifecycleState state) async {
  super.didChangeAppLifecycleState(state);
  if (state == AppLifecycleState.inactive) {
    final isLock = await isLockScreen();
    if(!isLock){
       print('app inactive MINIMIZED!');
    }
    print('app inactive in lock screen!');
  } else if (state == AppLifecycleState.resumed) {
    print('app resumed');
  }
}
Run Code Online (Sandbox Code Playgroud)