Nic*_*sco 5 android kotlin flutter
我目前正在将使用 Flutter 开发的视图添加到现有的 Android 应用程序中。我一直在关注 Flutter网站上的教程,并决定使用缓存引擎,以最大限度地减少用户在导航到应用程序的 Flutter 部分时可能遇到的延迟。为此,您必须启动 Flutter 活动,例如
startActivity(
FlutterActivity
.withCachedEngine("my_engine_id")
.build(this) // this is a Context
Run Code Online (Sandbox Code Playgroud)
)
一段时间后,我需要编写一个方法通道以从应用程序的 Flutter 部分通信回 Android 主机应用程序,因此我按照 Flutter 的另一个教程中的说明进行操作,其中显示实现通道的活动必须延伸FlutterActivity。
所以我的问题是我不确定如何使用缓存引擎初始化这个活动,因为我显然不能再使用FlutterActivity.withCachedEngine了。有没有人已经解决了这个问题?
Nic*_*sco 12
查看FlutterActivity文档后我找到了provideFlutterEngine 方法。文档描述明确指出:
如果需要缓存的 FlutterEngine,则应在该钩子中提供缓存的 FlutterEngine。
所以我的类的最终实现现在看起来像这样
class MyActivity : FlutterActivity() {
override fun provideFlutterEngine(context: Context): FlutterEngine? =
FlutterEngineCache.getInstance().get(FlutterConstants.ENGINE_ID)
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, "my-channel")
.setMethodCallHandler { call, result ->
if (call.method == "my-method") {
myMethod()
result.success(null)
} else {
result.notImplemented()
}
}
}
private fun myMethod() {
// Do native stuff
}
}
Run Code Online (Sandbox Code Playgroud)
我只是开始写startActivity(Intent(this, MyActivity::class.java))
| 归档时间: |
|
| 查看次数: |
568 次 |
| 最近记录: |