原因:
View 的 onDraw() 方法会被频繁的调用,避免在onDraw()内分配对象,是为了减少垃圾回收器对绘图性能的影响.
我查了一下,Android所用的Dalvik虚拟机,其垃圾回收器工作时是需要 stop the world 的.意思是说,垃圾回收器工作时,会停止此虚拟机中的一切线程,等垃圾回收器工作完成,程序线程才能再次工作。
解决方案:
可以在构造函数初始化一个类的成员变量
View 的 onDraw() 方法会被频繁的调用,避免在onDraw()内分配对象,是为了减少垃圾回收器对绘图性能的影响.
我查了一下,Android所用的Dalvik虚拟机,其垃圾回收器工作时是需要 stop the world 的.意思是说,垃圾回收器工作时,会停止此虚拟机中的一切线程,等垃圾回收器工作完成,程序线程才能再次工作。
可以在构造函数初始化一个类的成员变量
本文标题:内存问题:为什么官方建议别在onDraw创建对象?
本文链接:https://www.haomeiwen.com/subject/fklvcltx.html
网友评论