大佬教程收集整理的这篇文章主要介绍了【Flutter 面试】main入口函数会被调用几次,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
创建一个 Flutter 项目,然后运行,@H_422_8@main入口函数 只会执行一次,下面修改项目的 MainActivity ,
class MainActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceStatE)
setContentView(R.layout.activity_main)
findViewById<Button>(R.id.button).setOnClickListener {
startActivity(Intent(this,FlutterActivity::class.java))
}
}
}
将其修改为一个普通的 Activity(原来是 FlutterActivity),添加一个按钮,跳转到 FlutterActivity,加载 Flutter 页面。
void main() {
runApp(MyApp());
print('===main====');
}
运行,点击跳转,跳转到了Flutter 页面,返回,再次点击跳转:
日志如下:
发现执行了2次main 入口函数。
使用缓存引擎跳转:
val FlutterENGIne = FlutterENGIne(this)
FlutterENGIne.dartExecutor.executeDartEntrypoint(
DartExecutor.DartEntrypoint.createDefault()
)
FlutterENGIneCache
.geTinstance()
.put("ENGIne_id",FlutterENGInE)
findViewById<Button>(R.id.button).setOnClickListener {
startActivity(
FlutterActivity
.withCachedENGIne("ENGIne_id")
.build(this)
)
}
运行,发现还没有点击跳转,就执行了1次main 入口函数,点击跳转,然后这次不在执行 main 入口函数。
void main() {
runApp(MyApp());
print('===main====');
}
void main1() {
runApp(MyApp());
print('===main1====');
}
修改引擎 Entrypoint 为 @H_422_8@main1:
class MainActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceStatE)
setContentView(R.layout.activity_main)
val FlutterENGIne = FlutterENGIne(this)
FlutterENGIne.dartExecutor.executeDartEntrypoint(
// DartExecutor.DartEntrypoint.createDefault()
createEntrypoint()
)
FlutterENGIneCache
.geTinstance()
.put("ENGIne_id",FlutterENGInE)
findViewById<Button>(R.id.button).setOnClickListener {
startActivity(
FlutterActivity
.withCachedENGIne("ENGIne_id")
.build(this)
)
}
}
fun createEntrypoint(): DartExecutor.DartEntrypoint {
val FlutterLoader: FlutterLoader = FlutterInjector.instance().FlutterLoader()
return DartExecutor.DartEntrypoint(FlutterLoader.findAppBundlePath(),"main1")
}
}
通过上面的实验,总结如下:
因此面试过程中,不管回答几次都是错误的。
老孟Flutter博客(330个控件用法+实战入门系列文章):http://laomengit.com
欢迎加入Flutter交流群(微信:laomENGIt)、关注公众号【老孟Flutter】:
@H_801_129@ |
以上是大佬教程为你收集整理的【Flutter 面试】main入口函数会被调用几次全部内容,希望文章能够帮你解决【Flutter 面试】main入口函数会被调用几次所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。