首页 > 解决方案 > Flutter:如何让应用程序在后台运行

问题描述

我正在使用 Flutter dart 开发 for foreground 应用程序,以使该应用程序在 Android 上的后台运行。在手机处于锁定屏幕上之前它工作正常,应用程序显示通知仍在运行,但该功能将不起作用。这个问题有什么解决方案吗?谢谢

标签: androidflutterdartforeground-service

解决方案


基本上你可以用https://api.flutter.dev/flutter/widgets/WidgetsBindingObserver-class.html来监听 App 的变化WidgetBindingsObserver

可以在这里找到一篇很好的文章(尤其是锁屏): https ://medium.com/@tomalabasteruk/flutter-in-app-lock-screens-f6a17fa02af

class _MyHomePageState extends State<MyHomePage> with WidgetsBindingObserver {
  AppLifecycleState _notification; 
  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    setState(() {
      _notification = state;
    });
  }

  @override
  initState() {
    super.initState();
    WidgetsBinding.instance.addObserver(this);
    ...
  }

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

推荐阅读