【发布时间】:2022-01-18 10:55:41
【问题描述】:
我有超过 20 个屏幕的应用程序,如果用户在一段时间内不活动/空闲,我想执行一项任务。 我正在尝试在应用程序的根目录中获取应用程序的生命周期。但我没有在我的 logcat 上收到打印语句。我在这里做错了什么?
void main() async{
WidgetsFlutterBinding.ensureInitialized();
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
State<StatefulWidget> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> with WidgetsBindingObserver{
@override
didChangeAppLifecycleState(AppLifecycleState state) {
switch (state) {
case AppLifecycleState.resumed:
print('app resumed');
break;
case AppLifecycleState.inactive:
print('app inactive');
break;
case AppLifecycleState.paused:
print('app paused');
break;
case AppLifecycleState.detached:
print('app detached');
break;
}
}
@override
void initState() {
WidgetsBinding.instance.addObserver(this);
super.initState();
_initializeTimer();
}
@override
void dispose() {
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}
}
【问题讨论】:
-
您是否像这样在 main.dart 中初始化了小部件绑定观察器 WidgetsFlutterBinding.ensureInitialized(); ?
-
是的!我也编辑了问题
标签: flutter widget application-lifecycle