我们必须在MainActivity扩展FlutterActivity中使用代码
但在我的安卓应用程序中,我有public class MainActivity extends AppCompatActivity
我不能扩展像extends AppCompatActivity,FlutterActivity这样的两个类,我应该做什么?我可以为methodChannels使用另一个java类吗?
upd:2022年- FlutterActivity降解
发布于 2021-01-12 17:21:15
我可以为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();
}
}));
}
}然后,您可以使用相关类启动颤振引擎,如下所示:
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"
/>https://stackoverflow.com/questions/63529953
复制相似问题