【问题标题】:Call Flutter Function from Android Part of the App从 App 的 Android 部分调用 Flutter 函数
【发布时间】:2019-04-04 16:07:36
【问题描述】:

我有一个使用 Flutter/Dart 作为库的 Android 应用。

当应用程序关闭时,它会继续作为服务在后台运行。 在 Android 代码(Java 中)中,我需要调用在应用程序的 Flutter 部分中编写的方法。

我该怎么做? 我发现一些帖子提到了 MethodChannel,但我只找到了 Flutter 部分从本机 (Android) 部分调用方法的示例。我想做相反的事情。

我该怎么做?

谢谢。

【问题讨论】:

    标签: android flutter


    【解决方案1】:

    在 Flutter 中,创建 MethodChannel 实例后,像这样附加一个 MethodCallHandler:

    _channel.setMethodCallHandler((call){
          print(call.method);
        });
    

    然后从您的 Android 代码中执行以下操作:

    channel.invokeMethod("hello","any argument");
    

    但是,当应用程序终止时,即使服务仍然存在,它也不会工作。我已经测试过了。

    【讨论】:

    • 当应用程序未打开时,是否有任何解决方法可以调用颤振功能。我想在连接互联网时与服务器同步数据。我已经在 android 端对互联网连接进行了更改,但目前所有同步方法都在 Flutter 中。
    • Android 端的channel 来自哪里?
    • 检查this
    • @KamleshKanazariya 为时已晚,但请查看this
    【解决方案2】:

    我认为解决这个问题的方法是使用平台上的原生数据库来存储数据,然后当应用程序加载时,flutter 代码可以调用原生主机平台来获取数据。

    在 android 上它会使用 WorkManager 来安排数据的获取并将其存储在 ROOM 或 Realm 等中。

    在 iOS 上,它将使用后台应用刷新来安排数据的获取并存储在 Core Data 或 Realm 中。

    我认为大文件应该保存在本地代码和颤振代码都可以访问的共享文件夹中,因为来回复制数据的成本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-03
      • 1970-01-01
      • 2021-10-17
      • 2022-11-28
      • 2021-03-02
      • 1970-01-01
      相关资源
      最近更新 更多