Flutter 测量应用程序已打开的时间量

Flutter 测量应用程序已打开的时间量,flutter,dart,Flutter,Dart,我正在尝试在应用程序打开十分钟后触发事件。有没有一个简单的方法可以做到这一点?我想我需要在应用程序首次构建时启动一个计时器,但是如果用户以某种方式离开应用程序,我可以取消或暂停该计时器 我找到了该库,但该库只侦听屏幕的关闭和打开,而不侦听诸如导航回家或其他应用程序之类的事件。我对这一点很熟悉,也与我发现的相关,但我的理解是,只有当用户按下后退按钮时才会进行拦截,而当用户按下home或切换到另一个应用程序时不会进行拦截 是否有一些中心方法可用于收听任何将关闭或离开应用程序的内容,或收听多种内容的组

我正在尝试在应用程序打开十分钟后触发事件。有没有一个简单的方法可以做到这一点?我想我需要在应用程序首次构建时启动一个计时器,但是如果用户以某种方式离开应用程序,我可以取消或暂停该计时器

我找到了该库,但该库只侦听屏幕的关闭和打开,而不侦听诸如导航回家或其他应用程序之类的事件。我对这一点很熟悉,也与我发现的相关,但我的理解是,只有当用户按下后退按钮时才会进行拦截,而当用户按下home或切换到另一个应用程序时不会进行拦截

是否有一些中心方法可用于收听任何将关闭或离开应用程序的内容,或收听多种内容的组合?

在运行
main
方法时启动:

导入'dart:async';
void main(){
计时器(持续时间(分钟:10),(){
//处理事件
});
runApp(MyApp());
}
如果希望能够控制计时器,请在根小部件中设置它,并让该小部件侦听生命周期事件:

类MyApp扩展StatefulWidget{
...
}
类MyAppState使用WidgetsBindingObserver扩展状态{
静态持续时间=持续时间(分钟:10);
定时器;
@凌驾
void initState(){
super.initState();
WidgetsBinding.instance.addObserver(这个);
appTimer=计时器(\u appTimerDuration,\u TimeRecursed);
}
@凌驾
无效处置(){
WidgetsBinding.instance.removeObserver(此);
appTimer?.cancel();
super.dispose();
}
@凌驾
void didchangeAppifecyclestate(AppLifecycleState状态){
if(state==AppLifecycleState.resume){
appTimer=计时器(\u appTimerDuration,\u TimeRecursed);
}否则{
appTimer?.cancel();
}
}
无效(复发){
//处理事件
}
...
}