Android 在使用flatteractivity时,如何将数据从java模块传输到flatter?

Android 在使用flatteractivity时,如何将数据从java模块传输到flatter?,android,flutter,Android,Flutter,当用java在现有应用程序中封装关于颤振的模块并使用颤振活动时,我遇到了传递字符串的问题。 如果使用变体: Button mInvokeFlutterActivity = findViewById(R.id.invoke_flutter_activity); mInvokeFlutterActivity.setOnClickListener(v -> startActivity( FlutterActivity.withNewEngine().initialRoute(li

当用java在现有应用程序中封装关于颤振的模块并使用颤振活动时,我遇到了传递字符串的问题。 如果使用变体:

Button mInvokeFlutterActivity = findViewById(R.id.invoke_flutter_activity);
mInvokeFlutterActivity.setOnClickListener(v -> startActivity(
        FlutterActivity.withNewEngine().initialRoute(link).build(context)
                .putExtra("background_mode", "opaque")
                .putExtra("destroy_engine_with_activity", true)
));
然后在main.dart中,可以捕获链接变量window.defaultRouteName。但如果使用其他意图:

 Button mInvokeFlutterActivity = findViewById(R.id.invoke_flutter_activity);
 mInvokeFlutterActivity.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
         startActivity(FlutterActivity.withCachedEngine("my_engine_id").build(context)           
        );
    }
});

然后使用window.defaultRouteName将变得不可能。有人能告诉我如何解决这个问题吗?

使用invoke方法从Java或Kotlin获取数据,阅读以了解如何使用它。

“当使用新的颤振引擎配置颤振活动或颤振碎片时,初始路线的概念可用。但是,当使用缓存引擎时,flatterActivity和flatterFragment不提供初始路由的概念。这是因为缓存引擎预计已经在运行Dart代码,这意味着配置初始路由为时已晚。”