1

我正在使用带有钩子的 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);
  }
}

谢谢你的帮助。

4

0 回答 0