android - Flutter:如何让应用程序在后台运行
问题描述
我正在使用 Flutter dart 开发 for foreground 应用程序,以使该应用程序在 Android 上的后台运行。在手机处于锁定屏幕上之前它工作正常,应用程序显示通知仍在运行,但该功能将不起作用。这个问题有什么解决方案吗?谢谢
解决方案
基本上你可以用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();
}
}
推荐阅读
- wordpress - 以重力形式获取字段的值并将该值用作 php 参数?
- docker - 运行命令返回错误代码时停止泊坞窗?
- javascript - Angular 2+ 的 xeditable 的替代品
- c# - Stop Driver Process after - session not created: 此版本的 ChromeDriver 仅支持 Chrome 版本
- javascript - 如何将我的选择列表、单选和复选框加起来?
- multithreading - JavaFXML 后台进程完成后,我想隐藏启动画面并显示主场景
- javascript - 创建时间戳数组删除开始和结束期间之间的小时数
- python - 如何顺序链接 ML 模型/管道模型?
- javascript - 返回数组中最大数的函数
- excel - 列出没有宏或 Excel 4 函数的工作表名称