Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振:Can';无法检测应用程序是否已销毁(AppLifecycleState.detached)_Flutter_Dart - Fatal编程技术网

Flutter 颤振:Can';无法检测应用程序是否已销毁(AppLifecycleState.detached)

Flutter 颤振:Can';无法检测应用程序是否已销毁(AppLifecycleState.detached),flutter,dart,Flutter,Dart,我有一个指纹安全的应用程序,但我不知道如何做到这一点 同时我有这样的逻辑,当用户退出app+持续时间令牌时保存(例如:07.40+30秒),然后如果用户再次返回,比较: @override void didChangeAppLifecycleState(AppLifecycleState state) async { setState(() => _appLifecycleState = state); print(state); if (_appLifecycleSta

我有一个指纹安全的应用程序,但我不知道如何做到这一点

同时我有这样的逻辑,当用户退出app+持续时间令牌时保存(例如:07.40+30秒),然后如果用户再次返回,比较:

 @override
  void didChangeAppLifecycleState(AppLifecycleState state) async {
  setState(() => _appLifecycleState = state);
  print(state);

 if (_appLifecycleState == AppLifecycleState.resumed) {// 07.40 30.00 > 07.40 29.00
  if(DateExit.isAfter(DateTime.now())){
   print("still available token")
   return;
  }else{ // 07.40 30.00 > 07.40 31.00
   print("expiry token , Goto Confirm Fingerprint Screen")
   final actionBox = repository.changeExpiryToken(
            userModelHive: UserModelHive()
              ..id = model.id
              ..giverName = model.giverName
              ..pinCode = model.pinCode
              ..fingerPrint = model.fingerPrint
              ..darkMode = model.darkMode
              ..expiryToken = !model.expiryToken
              ..durationToken = model.durationToken,
          );
          return actionBox;
  }
 }else{
  dateExit = DateTime.now().add(Duration(seconds: 5));
  print('Another Lifecycle');
 }
}
一切正常我可以检测到用户是否只切换到另一个应用或打开最近的应用,如果
DateExit.isAfter(DateTime.now())
,我可以更改
tokenExpiry
状态。 但问题是,我无法检测到用户是否破坏了应用程序,尽管我已经在处理我的逻辑


我做错了

didChangeAppLifecycleState
没有任何状态可用于检查应用程序是否已启动。你可以在这里看到:。在这种情况下,您应该使用
initState
检查我也遇到了同样的问题。所以现在我找到了一个解决方案来检测应用程序是否被破坏。 在flatter中,我们有一个方法名-dispose() 在我的例子中,app destroy没有调用dispose()方法。所以我只是更新了dispose()方法。请参阅下面的代码

  @mustCallSuper
  @protected
  void dispose() {
    // TODO: implement dispose
    WidgetsBinding.instance.removeObserver(this);

    print('dispose called.............');
    super.dispose();
  }

我希望它也能解决你的问题。

Zeffry Reynando你找到解决办法了吗?我还想在app-on-destroy上处理我的app。如果您找到了解决方案,请与我们分享。