Flutter 扩展AppCompatActivity与扩展AppCompatActivity

Flutter 扩展AppCompatActivity与扩展AppCompatActivity,flutter,Flutter,为了 我们必须在MainActivity活动中使用我们的代码 但在我的android应用程序中,我有公共类MainActivity扩展了AppCompatActivity 我不能扩展两个类,比如扩展AppCompatActivity,flatterActivity 我该怎么办?我可以为MethodChannel使用另一个java类吗 我可以为MethodChannel使用另一个java类吗 是的,您可以为MethodChannel使用另一个java类。您可以在应用程序中的任何位置编写它,如下所示

为了

我们必须在MainActivity活动中使用我们的代码

但在我的android应用程序中,我有
公共类MainActivity扩展了AppCompatActivity

我不能扩展两个类,比如
扩展AppCompatActivity,flatterActivity
我该怎么办?我可以为MethodChannel使用另一个java类吗

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

是的,您可以为MethodChannel使用另一个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();
        }
    }));
 }
}
startActivity(
  new FlutterActivity.NewEngineIntentBuilder(MyFlutterActivity.class).build(getApplicationContext())
 );
然后,您可以使用如下相关类启动颤振引擎:

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


您有没有成功解决这个问题的方法?@Akif我想活动包括了AppCompatActivity的所有功能,我只是在今天找到解决方案后更换并使用它。我想在这里为下一位访客添加。最好在开放式颤振活动中使用颤振缓存引擎,而不是使用新的颤振活动。我想是新的EngineeIntentBuilder。