动态加载的资源我用了引用计数,使用的时候+1,销毁的时候-1,但是销毁时不好处理。于是想在生命周期中处理。
onDestroy
该方法为生命周期方法,父类未必会有实现。
_onPreDestroy
在对象被销毁之前调用。
但是断点发现这两个方法中Sprite上的SpriteFrame均为null,isValid为false,此时已经不能无法回收该纹理。
我项目目前的做法是做一个界面的基类,基类里有一个beforeDestroy()的方法,在界面管理器中即将销毁时调用beforeDestroy方法,这样可以确保在onDestroy之前执行,Sprite上的SpriteFrame还是有引用的,但是这样做有很大局限性:
1、必须手动在有加载动态资源的界面处理回收,麻烦且容易忘记
2、只局限在界面这个基类,部分没有继承基类的ui无法处理
3、面对复杂界面或嵌套的界面,如循环回收的列表等,不好处理
我目前被这问题搞的有点头秃,请问有啥好点的方式处理吗
项目用的ccc2.4.7