0

当应用程序在后台时,我希望 workamnager 执行任务以获取数据。当应用程序打开并处于活动状态时,我想停止它。我如何实现这种行为。提前致谢。

4

1 回答 1

0

使用WidgetsBindingObserver检索应用程序生命周期的状态,inactive,pause,suspend 你注册worker,恢复,你取消worker,workmanager

class _MyHomePageState extends State<MyHomePage> with WidgetsBindingObserver {
  @override
  void initState() {
    WidgetsBinding.instance.addObserver(this);
    super.initState();
  }

  @override
  void dispose() {
    WidgetsBinding.instance.removeObserver(this);
    super.dispose();
  }

  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    //TODO add your worker action here
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Tutorial Lifecycle'),
      ),
      body: Center(),
    );
  }
}
于 2021-01-07T02:55:33.317 回答