Flutter 应用程序可以在后台运行吗?

Posted

技术标签:

【中文标题】Flutter 应用程序可以在后台运行吗?【英文标题】:Can Flutter application function in the background? 【发布时间】:2022-01-01 21:52:03 【问题描述】:

我是 Flutter 新手。

我想构建一个在地图上显示可收集项目的地图应用程序。当用户靠近物品时,他们可以收集它们。我必须调用服务器以指示用户收集该项目。

我了解应用程序在前台运行时会运行。但是如果应用程序在后台,它可以执行这些功能吗?例如:更新用户位置、根据位置获取物品、收集物品等。

flutter 在后台是否可以正常执行这些功能,或者我们必须创建某种服务类型的应用程序才能执行此操作?

感谢您对此提出的任何建议。

【问题讨论】:

【参考方案1】:

是的,你可以这样做,但是你需要用 kotlin/java 创建这个方法并使用平台通道来调用它。

【讨论】:

我明白了,ios 必须用 Swift 编写它们? 是的,但是在 iOS 上你有比在 android 上更多的限制。推荐你阅读这篇来自flutter dev docs.flutter.dev/development/platform-integration/…的文章【参考方案2】:

是的,你可以 workmanger 用于在你的 Flutter 应用程序的后台运行一些东西,它直接支持 dart Workmanager。或者,本机代码将为您 swift 或 Objective-c 用于 ios 和 kotlin 或 java 用于 android,具体取决于您告诉 Flutter 使用哪种默认本地语言创建项目,但如果您没有先前的经验,这将变得非常复杂,尤其是在 ios 方面。与 workmanager 一起努力,看看是否可行。 看看 firebase 调度函数和 cron 看看它们是否也能为你完成这项工作Firebase Schedule Functions Cron Flutter

【讨论】:

以上是关于Flutter 应用程序可以在后台运行吗?的主要内容,如果未能解决你的问题,请参考以下文章

我需要让我的应用程序总是在后台运行。

如何在 Flutter 中让任务在后台运行

如何检测flutter网站是不是在浏览器后台运行?

如何在 Flutter 应用程序的后台运行代码?

在 Flutter 后台比较和运行代码

Flutter 本地通知 - 当应用程序在后台运行时,ZonedSchedule 通知不起作用