【问题标题】:How to keep my flutter app running in the background when close?关闭时如何让我的颤振应用程序在后台运行?
【发布时间】:2019-07-30 19:33:18
【问题描述】:

我正在构建一个应用程序,我希望它显示在用户的通知栏中并在后台运行,即使它已关闭。类似于“KWGT Kustom Widget Maker”。

我已经尝试寻找允许这样做的库,但我只能找到与 java 相关的库。是否有适用于 Dart/Flutter 或任何其他解决方法?我只针对安卓设备。

【问题讨论】:

    标签: android flutter


    【解决方案1】:

    经过搜索,我猜你有两个解决方案:

    您可以在 android 和 IOS 平台上使用 Flutter 包装器,但您不能经常每 15 分钟运行一次作业。如果你想更频繁地安排作业,你需要编写平台相关的代码,使用android_alarm_managerflutter 包和background_fetch for IOS。 您可以使用 dart 中的Platform 函数触发正确的一个。

    【讨论】:

      【解决方案2】:

      我使用了一个名为 flutter_background 的包,它非常适合我。

      【讨论】:

        【解决方案3】:

        您应该为此使用 Isolates,也可以使用 android_alarm_manager 或 background_fetch 库

        【讨论】:

          【解决方案4】:

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

          有关更多信息和使用 Dart 代码后台执行的地理围栏示例,请参阅 Flutter Publication on Medium 中的文章Executing Dart in the Background with Flutter Plugins and Geofencing。在本文末尾,您会找到示例代码的链接,以及 Dart、iOS 和 Android 的相关文档

          【讨论】:

            【解决方案5】:

            您可以使用flutter_workmanager 插件。
            它比 android_alarm_manager 插件更好,因为它在 Android 上使用了更新的 API,并且也适用于 iOS。

            【讨论】:

            • 但在 ios 中没有一次性任务。
            • workmanager 只能打印消息,不能使用任何函数或方法调用。可怜
            • android_alarm_manager 可以在几秒钟内定期运行任务 - 而 flutter_workmanager 可以达到最少 15 分钟的时间范围。 android_alarm_manager 显然是赢家。
            • android_alarm_manager 和 workmanager。在这些之间,即使从 ram/最近的应用程序关闭应用程序也能够运行任务?
            • Work_manager 如果需要不到 15 分钟就不能使用。它计划超过 15 分钟
            猜你喜欢
            • 2012-12-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-05-16
            • 1970-01-01
            相关资源
            最近更新 更多