是否可以使用Flutter在特定平台的Android服务中运行dart代码



我有一个Flutter库,它在Flutter main.dart中运行良好,但我需要在Android服务中使用它才能在后台运行。

由于Flutter还不支持服务(据我所知(,所以我使用Java创建了一个原生的Android服务,并使用MethodChannel启动它。但我不知道如何在我的服务中使用Flutter库。

那么,是否可以在Android服务中使用Flutter库,或者我需要将库转换为Java代码?

我已经研究过隔离、后台流程和地理围栏,但它们与服务并非100%相同。

更新

事实上,在打开前台服务后,Android会让应用程序在后台运行。因此,打开服务并显示通知就是我所需要做的,无需在服务中放入更多代码。

使用MethodChannel是可能的,但与其从dart调用并在本机平台中处理,不如在dart中处理调用并从本机平台调用。在飞镖中,你会得到这样的东西:

MethodChannel _methodChannel = MethodChannel('bridge');
_methodChannel.setMethodCallHandler((call) {
doSomething();
});

在android平台中的服务中,您将在同一频道上调用一个方法:

MethodChannel(flutterEngine.dartExecutor.binaryMessenger, 'bridge').invokeMethod('method', argument)

最新更新