【发布时间】:2019-07-30 19:33:18
【问题描述】:
我正在构建一个应用程序,我希望它显示在用户的通知栏中并在后台运行,即使它已关闭。类似于“KWGT Kustom Widget Maker”。
我已经尝试寻找允许这样做的库,但我只能找到与 java 相关的库。是否有适用于 Dart/Flutter 或任何其他解决方法?我只针对安卓设备。
【问题讨论】:
我正在构建一个应用程序,我希望它显示在用户的通知栏中并在后台运行,即使它已关闭。类似于“KWGT Kustom Widget Maker”。
我已经尝试寻找允许这样做的库,但我只能找到与 java 相关的库。是否有适用于 Dart/Flutter 或任何其他解决方法?我只针对安卓设备。
【问题讨论】:
经过搜索,我猜你有两个解决方案:
您可以在 android 和 IOS 平台上使用 Flutter 包装器,但您不能经常每 15 分钟运行一次作业。如果你想更频繁地安排作业,你需要编写平台相关的代码,使用android_alarm_managerflutter 包和background_fetch for IOS。
您可以使用 dart 中的Platform 函数触发正确的一个。
【讨论】:
我使用了一个名为 flutter_background 的包,它非常适合我。
【讨论】:
您应该为此使用 Isolates,也可以使用 android_alarm_manager 或 background_fetch 库
【讨论】:
此功能的机制涉及设置隔离。隔离是 Dart 的多线程模型,尽管隔离与传统线程的不同之处在于它不与主程序共享内存。您将使用回调和回调调度程序为后台执行设置隔离。
有关更多信息和使用 Dart 代码后台执行的地理围栏示例,请参阅 Flutter Publication on Medium 中的文章Executing Dart in the Background with Flutter Plugins and Geofencing。在本文末尾,您会找到示例代码的链接,以及 Dart、iOS 和 Android 的相关文档
【讨论】:
您可以使用flutter_workmanager 插件。
它比 android_alarm_manager 插件更好,因为它在 Android 上使用了更新的 API,并且也适用于 iOS。
【讨论】: