如何在无需打开应用的情况下后台启动 Flutter 服务?

Posted

技术标签:

【中文标题】如何在无需打开应用的情况下后台启动 Flutter 服务?【英文标题】:How to start a Flutter service on the background whithout the need to open the app? 【发布时间】:2020-10-19 19:11:16 【问题描述】:

我一直在开发一个与安全相关的应用程序。此应用会在后台定期将位置数据发送到服务器。但我需要打开应用程序(并单击一个按钮)才能启动服务。

有没有办法不用在前台打开应用就可以启动这个服务?(比如摇晃设备或者点击几下音量键)

我在考虑是否可以在后台(通过 UI)启动一个侦听器,当通过音量按钮激活时执行该服务?

任何帮助将不胜感激,谢谢!

【问题讨论】:

【参考方案1】:

由于更新的搁浅,您无法继续在后台运行服务。为了解决您的目的,您可以改用前台服务。这是实现前台服务的包。

https://pub.dev/packages/foreground_service

在该服务中,您可以编写用于检测摇动或音量按钮按下的代码。您可以通过以下链接获得帮助。

检测抖动事件 https://***.com/a/5271532/6413387

检测音量按钮事件 https://***.com/a/9162794/6413387

【讨论】:

谢谢你的回答,我会再等一会儿,以防有人也有可以在 ios 上使用的实现。

以上是关于如何在无需打开应用的情况下后台启动 Flutter 服务?的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有主机的情况下启动我的 Flutter 应用程序?

收到 FCM 通知时如何在不点击通知的情况下打开(启动)应用程序

Flutter应用启动页设置,解决 白/黑 屏情况

如果活动在后台运行,则无需通过启动器即可从小部件恢复现有活动

颤振:如何在按下后退按钮时不退出应用程序

如何使用 Flutter 让后台应用每天下午 2 点打开一个对话框?