我正在使用带有钩子的 Flutter,并且我正在尝试获取应用程序生命周期状态。我遵循文档并创建了新的钩子(代码如下所示),它适用于所有情况,但有一个例外。当应用程序状态变为“暂停”时,钩子不会将值返回给小部件。我不清楚此时该做什么。有人建议使用 Isolates,但我不明白这有什么帮助。更新应用程序生命周期的计算成本并不高。
请让我知道我还能做些什么来完成这项工作。谢谢
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
AppLifecycleState useAppLifecycleState() {
return use(const _LifeCycleState());
}
class _LifeCycleState extends Hook<AppLifecycleState> {
const _LifeCycleState();
@override
__LifeCycleState createState() => __LifeCycleState();
}
class __LifeCycleState extends HookState<AppLifecycleState, _LifeCycleState>
with WidgetsBindingObserver {
AppLifecycleState _state;
@override
void initHook() {
super.initHook();
WidgetsBinding.instance.addObserver(this);
}
@override
void dispose() {
super.dispose();
WidgetsBinding.instance.removeObserver(this);
}
@override
AppLifecycleState build(BuildContext context) {
return _state;
}
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
setState(() {
_state = state;
});
super.didChangeAppLifecycleState(state);
}
}
谢谢你的帮助。