Android Flutter запускает пользовательскую активность с кешированным движком
Я интегрирую FlutterActivity
в собственное приложение для Android. у меня естьCustomFlutterActivity
который наследуется от FlutterActivity
, который я хочу запустить, используя кешированный FlutterEngine
.
Это код из документации о том, как это сделать:
startActivity(
FlutterActivity
.withNewEngine()
.build(currentActivity)
);
Чего я хочу добиться, так это запустить свой CustomFlutterActivity
с моим кешированным движком (а не общим FlutterActivity
как говорится в документации)
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"
}
}
См. Документы
Вы можете переопределить
provideFlutterEngine
и вернуться
FlutterEngine
из кеша.
class CustomFlutterActivity : FlutterActivity() {
override fun provideFlutterEngine(context: Context): FlutterEngine? {
return FlutterEngineCache.getInstance().get("flutter_engine")
}
}