user3703910
user3703910

Reputation: 644

Android Flutter launch custom activity with cached engine

Iam integrating FlutterActivity to a native Android app. I have CustomFlutterActivity which inherits from FlutterActivity, which I want to launch using cached 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)

Upvotes: 6

Views: 2017

Answers (2)

Karandeep Singh
Karandeep Singh

Reputation: 26

You can override provideFlutterEngine and return FlutterEngine from the cache.

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

Upvotes: 0

beltry
beltry

Reputation: 103

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:

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

Thus:

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

See docs

Upvotes: 4

Related Questions