Я пытаюсь создать приложение Flutter, которое выполняет следующие действия:
1) Запускать диспетчер тревог каждую минуту (даже если приложение находится в фоновом режиме / закрыто).
2) Когдавызывается метод onReceive диспетчера аварийных сигналов. Получите местоположение пользователей.
3) Сохраните это местоположение в базе данных SQL / SQF.
По сути, у меня весь код работает.Однако я бы предпочел выполнить шаг 2 и 3 с двумя разными плагинами, чтобы создать больше модульности.Но для этого мне нужно иметь экземпляр FlutterView, чтобы я мог сделать «MethodChannel(flutterView, CHANNEL).invokeMethod(methods, args);
» с Android.
(В Android / Java, метод onReceive) я попытался получитьFlutterView из контекста, например, так:
private FlutterView viewFromAppContext(Context context) {
Application app = (Application) context.getApplicationContext();
if (!(app instanceof FlutterApplication)) {
Log.i(TAG, "viewFromAppContext app not a FlutterApplication");
return null;
}
FlutterApplication flutterApp = (FlutterApplication) app;
Activity activity = flutterApp.getCurrentActivity();
if (activity == null) {
Log.i(TAG, "viewFromAppContext activity is null");
return null;
}
if (!(activity instanceof FlutterActivity)) {
Log.i(TAG, "viewFromAppContext activity is not a FlutterActivity");
return null;
}
FlutterActivity flutterActivity = (FlutterActivity) activity;
return flutterActivity.getFlutterView();
}
Однако, когда я пытаюсь сделать это, когда приложение находится в фоновом режиме, действие является нулевым.
Возможно ли создать новое действие и/ или трепетание в этом сценарии (которое может быть направлено на мой метод 'setMethodCallHandler' в dart)?