在上一篇blog里,简单的把我所使用的RxBus的分享出来了,如有疏漏或错误,欢迎指正。这篇blog继续RxBus,同时完成上一篇blog上所说的学习Message源码,完成RxEvent对象的复用。
对象复用,个人理解,其核心思想就是创建出一个对象池出来,不用的对象,加入到对象池里,供下一次直接从对象池中取出来,避免重复创建和销毁对象带来的开销。有关于对象池方面的知识,由于本人理解有限,就不在这里详细展开了,需要详细了解,请自行搜索或查看api文档。
对象池,很多第三方包也实现了,也可自行实现,我所采用的是android的v4包提供的,具体为android.support.v4.util.Pools。该工具类提供了一个比较简单的创建对象池的方法,使用起来很简单。具体代码为:
这样,即可完成对Event对象的复用了。
到此为止,已经完成了对象复用的工作了,基本可以满足正常的业务需求了。但如果深入研究代码,就会发现还存在一些问题,至于具体问题的具体所在 和解决办法,后续会逐步完善的。水平有限,难免会有疏漏或错误的地方,欢迎拍砖。