#android #flutter #dart
#Android #flutter #dart
Вопрос:
У меня есть библиотека Flutter, которая хорошо работает в Flutter main.dart, но мне нужно использовать ее в службах Android для запуска в фоновом режиме.
Поскольку Flutter еще не поддерживает службы поддержки (насколько я знаю), поэтому я создаю собственную службу Android с использованием Java и запускаю ее с помощью MethodChannel. Но я не знаю, как использовать библиотеку Flutter внутри моей службы.
Так можно ли использовать библиотеку Flutter внутри службы Android или мне нужно преобразовать библиотеку в код Java?
Я уже исследовал изоляцию, фоновые процессы и геозоны, но они не на 100% совпадают с сервисом.
Обновить
На самом деле, после открытия службы переднего плана Android будет поддерживать работу приложения в фоновом режиме. Итак, откройте службу и отобразите уведомление — это все, что мне нужно сделать, не нужно добавлять больше кода в службу.
Ответ №1:
Это возможно с помощью MethodChannel
, но вместо вызова из dart и обработки его на родной платформе, вы должны обрабатывать вызовы в dart и вызывать с родной платформы. В dart у вас будет что-то вроде этого:
MethodChannel _methodChannel = MethodChannel('bridge');
_methodChannel.setMethodCallHandler((call) {
doSomething();
});
И в вашем сервисе на платформе Android вы будете вызывать метод на том же канале:
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, 'bridge').invokeMethod('method', argument)