【问题标题】:It's possible run code like a "background service" when the app is closed using flutter?使用颤振关闭应用程序时,是否可以运行类似“后台服务”的代码?
【发布时间】:2019-05-08 22:17:31
【问题描述】:

即使应用程序关闭,我也需要每 30 秒运行一次 dart 代码。这是可能的?

建议的一些解决方法是在 Android 上使用 AlarmManager,但是,我没有找到适用于 iOS 的解决方案。

【问题讨论】:

标签: flutter


【解决方案1】:

没有很好的文章介绍如何在应用程序关闭而不运行一些本机代码的情况下实现隔离。总的来说,我花了整整 2 天的时间试图为此找到一个包,但没有任何东西可以工作。当应用程序被杀死时 Flutter_Isolate 不会运行,并且 Flutter Workmanager 只能执行打印语句,但不能接受任何函数或任何方法调用。最终很可悲,很烦人。唯一的解决方案似乎是在应用程序关闭时编写本机代码来处理后台任务。羞于颤抖。

【讨论】:

  • 其实我还没有解决。我一直在开发其他方面的代码。但似乎除了使用本机代码之外别无选择。
  • 发现IOS上真的没有解决办法。在应用程序终止后运行任务。但对于 android,您可以使用前台服务来运行长时间运行的任务。你应该接受 IOS 是不同的并且不在你的控制范围内
  • 好吧,我发现iOS上有涉及本机代码的解决方案。我只是还没有 iOS 机器来测试它。
  • @AxesGrinds 你能分享被杀应用的 iOS 原生代码吗?
【解决方案2】:

是的,这是可能的。你可以在后台运行 Flutter。

在 Flutter 中,你可以在后台执行 Dart 代码。

此功能的机制涉及设置隔离。 隔离是 Dart 的多线程模型,虽然隔离 与传统线程的不同之处在于它不共享内存 与主程序。您将为背景设置隔离 使用回调和回调调度程序执行。

来源:Background processes

【讨论】:

    猜你喜欢
    • 2019-05-16
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    • 2020-08-31
    • 2021-08-30
    • 1970-01-01
    • 2012-01-26
    相关资源
    最近更新 更多