简体   繁体   English

Android Flutter 使用缓存引擎启动自定义活动

[英]Android Flutter launch custom activity with cached engine

Iam integrating FlutterActivity to a native Android app.我正在将FlutterActivity集成到本机 Android 应用程序。 I have CustomFlutterActivity which inherits from FlutterActivity , which I want to launch using cached FlutterEngine .我有继承自CustomFlutterActivityFlutterActivity ,我想使用缓存FlutterEngine启动它。

This is the code from the documentation for how to do this:这是文档中有关如何执行此操作的代码:

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

What I want to achieve is to launch my CustomFlutterActivity with my cached engine (and not a generic FlutterActivity as the documentation says)我想要实现的是使用我的缓存引擎启动我的CustomFlutterActivity (而不是文档所说的通用FlutterActivity

In your CustomFlutterActivity which I suppose is derived from FlutterActivity you can override getCachedEngineId and provide the my_engine_id you have previously cached according to the docs, namely:在我认为从FlutterActivity CustomFlutterActivity ,您可以覆盖getCachedEngineId并提供您之前根据文档缓存的my_engine_id ,即:

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

Thus:因此:

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

See docs查看文档

You can override provideFlutterEngine and return FlutterEngine from the cache.您可以覆盖provideFlutterEngine并从缓存中返回FlutterEngine

class CustomFlutterActivity : FlutterActivity() {
    override fun provideFlutterEngine(context: Context): FlutterEngine? {
        return FlutterEngineCache.getInstance().get("flutter_engine")
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM