-
Creator 版本:3.8.6
-
目标平台:IOS原生应用
这里先交待一下我的需求背景,我的应用启动后并不立即显示cocos的界面,而是将一个原生view作为初始界面,再从原生界面跳转进入cocos。通过交互再从cocos界面退出返回到原生界面,这时会将cocos界面销毁。所以就会存在反复的创建和销毁cocos实例,多次退出进入cocos后就会存在渲染帧率下降以及内存增长。
按原始的cocos ios启动模板里,应用退出时会调用AppDelegateBridge 的applicationWillResignActive 和applicationWillTerminate方法
在适配我的需求中,我也是在我退出cocos界面的时候调用这个方法。
查看这个方法的内部实现,可以看到是直接退出了cocos的
但是platform是一个静态变量
再次进入cocos时会再次创建一个systemwindow
对比android原生在退出时调用了unregisterAllInterfaces会清空存在的systemwindow
我按androd那样在IOSPlatform的onDestroy的方法里调用了unregisterAllInterfaces后,再重复进出cocos渲染帧率恢复正常,内存的增减也正常了。虽然问题解决了,但我也只是研究了一部分源码,不知道在不修改源码的情况下有没有更好的方法。期待有兴趣的伙伴们来回复