Можно ли получить FlutterView от BroadcastReceiver / Alarm Manager? - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь создать приложение 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)?

1 Ответ

0 голосов
/ 18 июля 2019

Я думаю, что вы ищете FlutterNativeView, вызываемый со вторым параметром, установленным в true;следовать за ним нелегко, он немного отличается от связанного с ним git-репо и спроектирован значительно превосходящим ваши потребности, но У Бен Коньи есть рабочий пример этого .Я думаю, вам может понравиться проверить некоторые способы, которыми он поддерживал работу других плагинов и сервис, если не метод implan (с тремя доменами обратного вызова).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...