回到前台黑屏引发对Flutter项目生命周期与安卓原生生命周期的思考
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了回到前台黑屏引发对Flutter项目生命周期与安卓原生生命周期的思考相关的知识,希望对你有一定的参考价值。
参考技术A 目前我们是flutter项目,有个需求是需要在app内引导用户去appStore或是安卓的应用商店去评价,该需求我选用了两个插件 in_app_review 和 launch_review , 然而仔做的过程中发现一个问题,当弹出系统的跳转应用商店的弹框时,ios是单一弹框,android是弹出一个选择打开商店的弹窗,可选择打开一次或是始终选择某一个商店打开,此时锁屏,然后再解锁,发现iOS没啥问题,安卓系统弹框后的flutter页面黑屏了看到这个现象,目测是由于安卓的生命周期和flutter的生命周期没有同步,以下是验证过程
安卓的MainActivity添加生命周期方法
flutter 添加生命周期方法
还是刚才的场景 锁屏 安卓和flutter的后台方法都调用,解锁回到前台 只有安卓的前台方法走 MainActivity会restart,flutter的resume方法,没有调用,验证了开始的猜想,是由于flutter没有检测到前台操作或是这种情况flutter不认为自己在前台,导致flutter没有执行页面的重新绘制导致黑屏
关于flutter的生命周期,查阅资料发现 我们可以手动刷新flutter页面的状态,即使用
我们只需要在MainActivity restart的时候调用上述 方法 告知flutter重绘,该问题就解决了
关于原生加载flutter页面 生命周期相关 看这里 能有一些启发
以上是关于回到前台黑屏引发对Flutter项目生命周期与安卓原生生命周期的思考的主要内容,如果未能解决你的问题,请参考以下文章
Flutter实战之Flutter应用生命周期 AppLifecycleState浅析
Flutter实战之Flutter应用生命周期 AppLifecycleState浅析