【问题标题】:extend AppCompatActivity vs extend flutterActivity扩展 AppCompatActivity 与扩展 flutterActivity
【发布时间】:2020-12-11 06:12:48
【问题描述】:

按顺序https://flutter.dev/docs/development/platform-integration/platform-channels?tab=android-channel-java-tab#step-3-add-an-android-platform-specific-implementation

我们必须在 MainActivity 中使用我们的代码扩展 FlutterActivity

但在我工作的 android 应用程序中,我有 public class MainActivity extends AppCompatActivity

我不能像extends AppCompatActivity,FlutterActivity 这样扩展两个类 我该做什么?我可以为 methodChannels 使用另一个 java 类吗?

【问题讨论】:

  • 你有没有成功解决这个问题?
  • @Akif 我想flutterActivity包含了AppCompatActivity的所有功能,我只是替换并使用它AFAIK
  • 我今天找到了解决方案。我想在这里为下一位访客添加。

标签: flutter


【解决方案1】:

我可以为 methodChannels 使用另一个 java 类吗?

是的,您可以为 methodChannels 使用另一个 java 类。您可以像这样在应用程序中的任何位置编写它:

public class MyFlutterActivity extends FlutterActivity {
private static final String CHANNEL = "samples.flutter.io/battery";

@Override
public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
    GeneratedPluginRegistrant.registerWith(flutterEngine);

    new MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), CHANNEL).setMethodCallHandler(((methodCall, result) -> {
        if (methodCall.method.equals("getBatteryLevel")) {

            result.success("batteryLevel"); // It returns string "batteryLevel".

        } else {
            result.notImplemented();
        }
    }));
 }
}

然后你可以像这样使用相关类启动 Flutter 引擎:

startActivity(
  new FlutterActivity.NewEngineIntentBuilder(MyFlutterActivity.class).build(getApplicationContext())
 );

当然,您需要在 AndroidManifest.xml 中定义该类:

   <activity android:name=".MyFlutterActivity"
    android:theme="@style/AppTheme"
    android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
    android:hardwareAccelerated="true"
    android:windowSoftInputMode="adjustResize"
    />

【讨论】:

  • 更好地使用颤振缓存引擎来打开颤振活动,我想应该是新的 FlutterActivity.NewEngineIntentBuilder。
猜你喜欢
  • 2022-07-28
  • 2022-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-22
  • 2013-05-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多