作为 Android 开发,对消息总线总不会陌生,当需要告知某些界面进行一些操作的时候,都会通过发送消息来做。早期的可以有广播,或者回调的方式,但是写起来都会比较麻烦,所以才会出现 EventBus 这种三方库,它使用起来非常方便,极大的解耦了我们的代码,所以当它一出现就受到了广大开发者的青睐。那用了这么久的 EventBus,香确实是很香,但是感觉还可以有优化的地方:
- 只在界面可见的时候进行处理(生命周期感知功能);
- 每次都得显式 register,unregister;
- 回调方法名称固定为 onEventMainThread 等等几个规定的名称,在 Android Studio 里会显示成 xxx is never used,警告也是很烦人的;
- 多个同类型消息不能只处理一次,这其实也和第 1 点呼应;
- 不同类型的消息,但是导致的业务操作其实是一致的,这种情景其实只需要处理一次即可,但 EventBus 做不到;
所以,在新出了 LiveData 之后,基于它的特性,是否可以进行改造呢?当然是可以的。
more >>