亲宝软件园·资讯

展开

EventBus 及一些思考

公子姓王 人气:1
EventBus 是 Android 开发的一种常用框架,其解耦的思维令人赞叹 从特性上来讲,其与 Android SDK中的BroadcastReceiver很像,二者都是注册,发送事件,反注册,都可以定义事件的优先级,且都只是粘性(sticky)事件,只是EventBus 使用起来简单得多,而且不能跨进程 > Android SDK其实也有一个不能跨进程的BroadcastReceiver机制,——LocalBroadcastManager,其发送和接受的广播只能在本进程,相比传统的 registerBroadcastReceiver,其有着更高的安全性,与EventBus的相似度也更高 关于 EventBus 基础,请参考: [EventBus](https://github.com/greenrobot/EventBus) [使用教程](https://juejin.im/post/5a3a0caa518825258b742968) [高级用法](https://juejin.im/post/5a3b8fe15188252103346d1b) [源码解析](https://juejin.im/post/5a3e19c26fb9a0452207b6b5) 这里结合源码,记录几个在 EventBus 学习和使用中值得思考和注意的地方: **注册** 1. 哪些方法会被注册 ? 2. 多次注册同一对象会如何? 3. 注册没有被 @Subscribe 注解的方法的对象会如何 ? 4. 注册时父类中被 @Subscribe 注解的方法会被注册吗? 5. 如果父类A 的方法 b 订阅了this,子类B重写了该方法,注册子类B 的对象会发生什么? 上述问题,我们需要分析 register方法: ```java public void register(Object subscriber) { Class subscriberClass = subscriber.getClass(); // 1. 找 subscriber 中被需要被注册的方法 List

加载全部内容

相关教程
猜你喜欢
用户评论