【问题标题】:Android Flutter launch custom activity with cached engineAndroid Flutter 使用缓存引擎启动自定义活动
【发布时间】:2020-10-06 04:59:25
【问题描述】:
我正在将 FlutterActivity 集成到原生 Android 应用。
我有CustomFlutterActivity,它继承自FlutterActivity,我想使用缓存的FlutterEngine 启动它。
这是文档中有关如何执行此操作的代码:
startActivity(
FlutterActivity
.withNewEngine()
.build(currentActivity)
);
我想要实现的是使用我的缓存引擎启动我的CustomFlutterActivity(而不是文档中所说的通用FlutterActivity)
【问题讨论】:
标签:
android
flutter
kotlin
caching
flutter-engine
【解决方案1】:
在您的CustomFlutterActivity 中,我认为它是从FlutterActivity 派生的,您可以覆盖getCachedEngineId 并提供您之前根据文档缓存的my_engine_id,即:
FlutterEngineCache
.getInstance()
.put("my_engine_id", flutterEngine);
因此:
class CustomFlutterActivity: FlutterActivity() {
override fun getCachedEngineId(): String? {
return "my_engine_id"
}
}
见docs
【解决方案2】:
您可以覆盖provideFlutterEngine 并从缓存中返回FlutterEngine。
class CustomFlutterActivity : FlutterActivity() {
override fun provideFlutterEngine(context: Context): FlutterEngine? {
return FlutterEngineCache.getInstance().get("flutter_engine")
}
}