android原生集成flutter,android原生项目集成flutter模块

该博客主要展示了如何在Android中创建一个FlutterTestActivity,并确保它继承自BaseActivity,进而正确处理Activity的生命周期。通过初始化FlutterEngine并监听其生命周期通道,实现了在Activity的onResume和onPause方法中调用相应的FlutterEngine生命周期方法,确保Flutter视图的正常工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码

//BaseActivity必须继承AppCompatActivity,才有ActivityLifeCycle。

class FlutterTestActivity : BaseActivity() {

override fun setLayout() = R.layout.m_activity_flutter_test

private val flutterEngineId = "flutterEngineId"

private var engine: FlutterEngine? = null

override fun initView(view: View) {

setToolbarTitle("flutter测试页面")

engine = FlutterEngineCache.getInstance().get(flutterEngineId)

if (engine == null) {

engine = FlutterEngine(this)

engine?.dartExecutor?.executeDartEntrypoint(DartExecutor.DartEntrypoint.createDefault())

FlutterEngineCache.getInstance().put(flutterEngineId, engine)

}

val view = createFlutterView()

view.attachToFlutterEngine(engine!!)

}

private fun createFlutterView(): FlutterView {

val flutterView = FlutterView(this) //默认加载flutter侧的main.dart文件

val params = FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)

binding.flContain.addView(flutterView, params)

return flutterView

}

override fun initEvent() {

}

override fun createPresenter() = FlutterTestPresenter()

override fun onResume() {

super.onResume()

engine?.lifecycleChannel?.appIsResumed()

}

override fun onPause() {

super.onPause()

engine?.lifecycleChannel?.appIsInactive()

}

override fun onStop() {

super.onStop()

engine?.lifecycleChannel?.appIsPaused()

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值