4

我正在集成FlutterActivity到原生 Android 应用程序。我有CustomFlutterActivitywhich 继承自FlutterActivity,我想使用 cached 启动它FlutterEngine

这是文档中有关如何执行此操作的代码:

startActivity(
      FlutterActivity
        .withNewEngine()
        .build(currentActivity)
      );

我想要实现的是用我的缓存引擎启动我的(而不是文档所说CustomFlutterActivity的通用)FlutterActivity

4

2 回答 2

2

在您的CustomFlutterActivity其中,我认为FlutterActivity您可以覆盖getCachedEngineId并提供my_engine_id您之前根据文档缓存的内容,即:

FlutterEngineCache
      .getInstance()
      .put("my_engine_id", flutterEngine);

因此:

class CustomFlutterActivity: FlutterActivity() {
    override fun getCachedEngineId(): String? {
        return "my_engine_id"
    }
}

查看文档

于 2020-10-23T12:14:23.357 回答
0

您可以覆盖provideFlutterEngineFlutterEngine从缓存中返回。

class CustomFlutterActivity : FlutterActivity() {
    override fun provideFlutterEngine(context: Context): FlutterEngine? {
        return FlutterEngineCache.getInstance().get("flutter_engine")
    }
}
于 2021-12-13T09:03:15.537 回答