【问题标题】:Is it possible to get a FlutterView from BroadcastReceiver/Alarm Manager?是否可以从 BroadcastReceiver/Alarm Manager 获取 FlutterView?
【发布时间】:2019-01-30 09:32:06
【问题描述】:

我正在尝试构建一个执行以下操作的 Flutter 应用程序:

1) 每分钟运行一次警报管理器(即使应用程序处于后台/关闭状态)。

2) 当调用报警管理器的onReceive方法时,获取用户位置。

3) 将此位置存储在 SQL/SQF 数据库中。

基本上,我的所有代码都在工作。但是,我更喜欢使用两个不同的插件执行第 2 步和第 3 步,以创建更多的模块化。但要做到这一点,我需要有一个 FlutterView 的实例,这样我就可以从 Android 中执行“MethodChannel(flutterView, CHANNEL).invokeMethod(methods, args);”。

(在 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();
            }

但是,当我在应用程序处于后台时尝试执行此操作时,活动为空。
在这种情况下是否可以创建一个新的活动和/或flutterview(可以直接指向我在dart中的'setMethodCallHandler'方法)?

【问题讨论】:

    标签: android flutter broadcastreceiver


    【解决方案1】:

    我认为您正在寻找的是一个 FlutterNativeView 调用,第二个参数设置为 true;它不容易理解,与链接的 git repo 略有不同,并且设计得远远超出了您的需求,但 Ben Konyi has a working example of this。我想你可能会喜欢看看他让其他插件和服务正常工作的一些方法,如果不是 methodchannel impl(带有 三个 回调域)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-22
      • 2010-12-07
      • 2020-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多