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")
    }
}
Другие вопросы по тегам