背景
项目中的flutter混合栈采用类似咸鱼flutter_boost的单引擎方案,不同的Flutter Activity间通过合理的引擎绑定与解绑机制实现多Flutter Activity。此前app内只是针对flutter -> native ->flutter的场景进行适配,且能正常运行,新的业务需求需要实现两个相邻FlutterActivity间的跳转,理论上而言两个相邻FlutterActivity间跳转的剩余工序其实就是截屏操作——防止Flutter Activity引擎解绑时画面出现白屏的情况,可以跳转下一Flutter Activity前给当前Flutter Activity截屏添加覆盖在白FlutterView上,防止返回原Flutter Activity时引擎未绑定导致出现白屏。但是demo中 FlutterActivity跳转到FlutterActivity后新的FlutterActivity经过一个短暂的时间后就无法响应滑动事件, flutter attach后看到滑动有概率会发生crash(注意不是进入新activity后就立刻crash,也不是滑动就必然crash)。
分析
查看上述滑动中偶现可能出现的crash堆栈如下:
看到到目前出现的问题是一个叫Ticker的东西重复开启了两次(第一次开启后没有stop直接开始一次新的start)。这里的Ticker其